Repository: musicfox/pycmc (language: python)

Issue:
[BUG]: psutil is not used and breaks some macintosh builds
**Describe the bug**

Building deps for me via Pipenv failed on a new M1 macbook air (as of Jan 2021) _in x86 emulation mode_ with clang _and_ gcc available.  

We currently rely on the excellent, but third party `psutil` library. Though tests exist for its use in the `utilities.FindProcess` method, we are not using this and will definitely not be using this for the 1.0.0 release. 

- [x] **remove psutil**

**To Reproduce**
Steps to reproduce the behavior:
1. Get a fresh copy of `pycmc` via `git clone git@github.com:musicfox/pycmc` && cd `pycmc`
2. Install fresh dependencies: `pipenv shell` then `pipenv install`. 
3. Receive error:

```
Installing initially failed dependencies...
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/cli/command.py", line 233, in install
[InstallError]:       retcode = do_install(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 2052, in do_install
[InstallError]:       do_init(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 1304, in do_init
[InstallError]:       do_install_dependencies(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 899, in do_install_dependencies
[InstallError]:       batch_install(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 796, in batch_install
[InstallError]:       _cleanup_procs(procs, failed_deps_queue, retry=retry)
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 703, in _cleanup_procs
[InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: Collecting psutil==5.7.3
[pipenv.exceptions.InstallError]:   Using cached psutil-5.7.3.tar.gz (465 kB)
[pipenv.exceptions.InstallError]: Building wheels for collected packages: psutil
[pipenv.exceptions.InstallError]:   Building wheel for psutil (setup.py): started
[pipenv.exceptions.InstallError]:   Building wheel for psutil (setup.py): finished with status 'error'
[pipenv.exceptions.InstallError]:   ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]:    command: /Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"'; __file__='"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-wheel-6rr07mlp
[pipenv.exceptions.InstallError]:        cwd: /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/
[pipenv.exceptions.InstallError]:   Complete output (46 lines):
[pipenv.exceptions.InstallError]:   running bdist_wheel
[pipenv.exceptions.InstallError]:   running build
[pipenv.exceptions.InstallError]:   running build_py
[pipenv.exceptions.InstallError]:   creating build
[pipenv.exceptions.InstallError]:   creating build/lib.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:   creating build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_pswindows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_common.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psosx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psbsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psaix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_pslinux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_compat.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psposix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_pssunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   creating build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_contracts.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_connections.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/runner.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_unicode.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_misc.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_posix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_linux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_sunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_aix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_process.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_bsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_system.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_osx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_memleaks.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_windows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/__main__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_testutils.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   warning: build_py: byte-compiling is disabled, skipping.
[pipenv.exceptions.InstallError]:   
[pipenv.exceptions.InstallError]:   running build_ext
[pipenv.exceptions.InstallError]:   building 'psutil._psutil_osx' extension
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch/osx
[pipenv.exceptions.InstallError]:   clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=573 -DPSUTIL_OSX=1 -I/Users/jason/.local/share/virtualenvs/pycmc-694t731m/include -I/Users/jason/.pyenv/versions/3.8.7/include/python3.8 -c psutil/_psutil_common.c -o build/temp.macosx-11.1-x86_64-3.8/psutil/_psutil_common.o
[pipenv.exceptions.InstallError]:   xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
[pipenv.exceptions.InstallError]:   error: command 'clang' failed with exit status 1
[pipenv.exceptions.InstallError]:   ----------------------------------------
[pipenv.exceptions.InstallError]:   ERROR: Failed building wheel for psutil
[pipenv.exceptions.InstallError]:   Running setup.py clean for psutil
[pipenv.exceptions.InstallError]: Failed to build psutil
[pipenv.exceptions.InstallError]: Installing collected packages: psutil
[pipenv.exceptions.InstallError]:     Running setup.py install for psutil: started
[pipenv.exceptions.InstallError]:     Running setup.py install for psutil: finished with status 'error'
[pipenv.exceptions.InstallError]:     ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]:      command: /Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"'; __file__='"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-record-ig83ij_3/install-record.txt --single-version-externally-managed --compile --install-headers /Users/jason/.local/share/virtualenvs/pycmc-694t731m/include/site/python3.8/psutil
[pipenv.exceptions.InstallError]:          cwd: /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/
[pipenv.exceptions.InstallError]:     Complete output (46 lines):
[pipenv.exceptions.InstallError]:     running install
[pipenv.exceptions.InstallError]:     running build
[pipenv.exceptions.InstallError]:     running build_py
[pipenv.exceptions.InstallError]:     creating build
[pipenv.exceptions.InstallError]:     creating build/lib.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:     creating build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_pswindows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_common.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psosx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psbsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psaix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_pslinux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_compat.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psposix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_pssunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     creating build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_contracts.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_connections.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/runner.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_unicode.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_misc.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_posix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_linux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_sunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_aix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_process.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_bsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_system.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_osx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_memleaks.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_windows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/__main__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_testutils.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     warning: build_py: byte-compiling is disabled, skipping.
[pipenv.exceptions.InstallError]:     
[pipenv.exceptions.InstallError]:     running build_ext
[pipenv.exceptions.InstallError]:     building 'psutil._psutil_osx' extension
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch/osx
[pipenv.exceptions.InstallError]:     clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=573 -DPSUTIL_OSX=1 -I/Users/jason/.local/share/virtualenvs/pycmc-694t731m/include -I/Users/jason/.pyenv/versions/3.8.7/include/python3.8 -c psutil/_psutil_common.c -o build/temp.macosx-11.1-x86_64-3.8/psutil/_psutil_common.o
[pipenv.exceptions.InstallError]:     xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
[pipenv.exceptions.InstallError]:     error: command 'clang' failed with exit status 1
[pipenv.exceptions.InstallError]:     ----------------------------------------
[pipenv.exceptions.InstallError]: ERROR: Command errored out with exit status 1: /Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"'; __file__='"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-record-ig83ij_3/install-record.txt --single-version-externally-managed --compile --install-headers /Users/jason/.local/share/virtualenvs/pycmc-694t731m/include/site/python3.8/psutil Check the logs for full command output.
ERROR: Couldn't install package: psutil
```

**Expected behavior**
I expect to be able to install the environment dependencies via any standard method (`virtualenv`, `Pipenv`, or even `Poetry` using `requirements.txt`).

[BUG]: psutil is not used and breaks some macintosh builds
**Describe the bug**

Building deps for me via Pipenv failed on a new M1 macbook air (as of Jan 2021) _in x86 emulation mode_ with clang _and_ gcc available.  

We currently rely on the excellent, but third party `psutil` library. Though tests exist for its use in the `utilities.FindProcess` method, we are not using this and will definitely not be using this for the 1.0.0 release. 

- [x] **remove psutil**

**To Reproduce**
Steps to reproduce the behavior:
1. Get a fresh copy of `pycmc` via `git clone git@github.com:musicfox/pycmc` && cd `pycmc`
2. Install fresh dependencies: `pipenv shell` then `pipenv install`. 
3. Receive error:

```
Installing initially failed dependencies...
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/cli/command.py", line 233, in install
[InstallError]:       retcode = do_install(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 2052, in do_install
[InstallError]:       do_init(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 1304, in do_init
[InstallError]:       do_install_dependencies(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 899, in do_install_dependencies
[InstallError]:       batch_install(
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 796, in batch_install
[InstallError]:       _cleanup_procs(procs, failed_deps_queue, retry=retry)
[InstallError]:   File "/usr/local/lib/python3.9/site-packages/pipenv/core.py", line 703, in _cleanup_procs
[InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: Collecting psutil==5.7.3
[pipenv.exceptions.InstallError]:   Using cached psutil-5.7.3.tar.gz (465 kB)
[pipenv.exceptions.InstallError]: Building wheels for collected packages: psutil
[pipenv.exceptions.InstallError]:   Building wheel for psutil (setup.py): started
[pipenv.exceptions.InstallError]:   Building wheel for psutil (setup.py): finished with status 'error'
[pipenv.exceptions.InstallError]:   ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]:    command: /Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"'; __file__='"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-wheel-6rr07mlp
[pipenv.exceptions.InstallError]:        cwd: /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/
[pipenv.exceptions.InstallError]:   Complete output (46 lines):
[pipenv.exceptions.InstallError]:   running bdist_wheel
[pipenv.exceptions.InstallError]:   running build
[pipenv.exceptions.InstallError]:   running build_py
[pipenv.exceptions.InstallError]:   creating build
[pipenv.exceptions.InstallError]:   creating build/lib.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:   creating build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_pswindows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_common.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psosx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psbsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psaix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_pslinux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_compat.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_psposix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   copying psutil/_pssunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   creating build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_contracts.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_connections.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/runner.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_unicode.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_misc.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_posix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_linux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_sunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_aix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_process.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_bsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_system.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_osx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_memleaks.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_windows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/__main__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   copying psutil/tests/test_testutils.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:   warning: build_py: byte-compiling is disabled, skipping.
[pipenv.exceptions.InstallError]:   
[pipenv.exceptions.InstallError]:   running build_ext
[pipenv.exceptions.InstallError]:   building 'psutil._psutil_osx' extension
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch
[pipenv.exceptions.InstallError]:   creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch/osx
[pipenv.exceptions.InstallError]:   clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=573 -DPSUTIL_OSX=1 -I/Users/jason/.local/share/virtualenvs/pycmc-694t731m/include -I/Users/jason/.pyenv/versions/3.8.7/include/python3.8 -c psutil/_psutil_common.c -o build/temp.macosx-11.1-x86_64-3.8/psutil/_psutil_common.o
[pipenv.exceptions.InstallError]:   xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
[pipenv.exceptions.InstallError]:   error: command 'clang' failed with exit status 1
[pipenv.exceptions.InstallError]:   ----------------------------------------
[pipenv.exceptions.InstallError]:   ERROR: Failed building wheel for psutil
[pipenv.exceptions.InstallError]:   Running setup.py clean for psutil
[pipenv.exceptions.InstallError]: Failed to build psutil
[pipenv.exceptions.InstallError]: Installing collected packages: psutil
[pipenv.exceptions.InstallError]:     Running setup.py install for psutil: started
[pipenv.exceptions.InstallError]:     Running setup.py install for psutil: finished with status 'error'
[pipenv.exceptions.InstallError]:     ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]:      command: /Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"'; __file__='"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-record-ig83ij_3/install-record.txt --single-version-externally-managed --compile --install-headers /Users/jason/.local/share/virtualenvs/pycmc-694t731m/include/site/python3.8/psutil
[pipenv.exceptions.InstallError]:          cwd: /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/
[pipenv.exceptions.InstallError]:     Complete output (46 lines):
[pipenv.exceptions.InstallError]:     running install
[pipenv.exceptions.InstallError]:     running build
[pipenv.exceptions.InstallError]:     running build_py
[pipenv.exceptions.InstallError]:     creating build
[pipenv.exceptions.InstallError]:     creating build/lib.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:     creating build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_pswindows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_common.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psosx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psbsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psaix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_pslinux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_compat.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_psposix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     copying psutil/_pssunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     creating build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_contracts.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_connections.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/runner.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_unicode.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_misc.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_posix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_linux.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_sunos.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/__init__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_aix.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_process.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_bsd.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_system.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_osx.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_memleaks.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_windows.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/__main__.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     copying psutil/tests/test_testutils.py -> build/lib.macosx-11.1-x86_64-3.8/psutil/tests
[pipenv.exceptions.InstallError]:     warning: build_py: byte-compiling is disabled, skipping.
[pipenv.exceptions.InstallError]:     
[pipenv.exceptions.InstallError]:     running build_ext
[pipenv.exceptions.InstallError]:     building 'psutil._psutil_osx' extension
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8/psutil
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch
[pipenv.exceptions.InstallError]:     creating build/temp.macosx-11.1-x86_64-3.8/psutil/arch/osx
[pipenv.exceptions.InstallError]:     clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=573 -DPSUTIL_OSX=1 -I/Users/jason/.local/share/virtualenvs/pycmc-694t731m/include -I/Users/jason/.pyenv/versions/3.8.7/include/python3.8 -c psutil/_psutil_common.c -o build/temp.macosx-11.1-x86_64-3.8/psutil/_psutil_common.o
[pipenv.exceptions.InstallError]:     xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
[pipenv.exceptions.InstallError]:     error: command 'clang' failed with exit status 1
[pipenv.exceptions.InstallError]:     ----------------------------------------
[pipenv.exceptions.InstallError]: ERROR: Command errored out with exit status 1: /Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"'; __file__='"'"'/private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-install-kxq14ar7/psutil_268e8fa3367f4dfd905fb045327f6430/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/pd/l3x_zl3d1_jgw0t0hrx6kv9r0000gn/T/pip-record-ig83ij_3/install-record.txt --single-version-externally-managed --compile --install-headers /Users/jason/.local/share/virtualenvs/pycmc-694t731m/include/site/python3.8/psutil Check the logs for full command output.
ERROR: Couldn't install package: psutil
```

**Expected behavior**
I expect to be able to install the environment dependencies via any standard method (`virtualenv`, `Pipenv`, or even `Poetry` using `requirements.txt`).



Discussion / hints:

Fix patch:
diff --git a/.vim/coc-settings.json b/.vim/coc-settings.json
new file mode 100644
index 0000000..7ff7fe5
--- /dev/null
+++ b/.vim/coc-settings.json
@@ -0,0 +1,3 @@
+{
+  "python.pythonPath": "/Users/jason/.local/share/virtualenvs/pycmc-694t731m/bin/python"
+}
\ No newline at end of file
diff --git a/Pipfile b/Pipfile
index 9f47bed..736d89e 100644
--- a/Pipfile
+++ b/Pipfile
@@ -5,7 +5,6 @@ name = "pypi"
 
 [packages]
 requests = "*"
-psutil = "*"
 pandas = "*"
 
 [dev-packages]
@@ -17,9 +16,10 @@ recommonmark = "*"
 sphinx = "*"
 twine = "*"
 pydata-sphinx-theme = "*"
+black = "==20.8b1"
 
 [requires]
 python_version = "3.8"
 
 [pipenv]
-allow_prereleases = false 
+allow_prereleases = false
diff --git a/Pipfile.lock b/Pipfile.lock
index 31637ef..b883a1b 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": "4237c197df790bd4234a71a700ef962a07b14aa1686503cb0dc52965c7f76d15"
+            "sha256": "a3b707f122df930f428549cf30aa073d51baa381883daaac22713b22aa28f302"
         },
         "pipfile-spec": 6,
         "requires": {
@@ -18,17 +18,18 @@
     "default": {
         "certifi": {
             "hashes": [
-                "sha256:1f422849db327d534e3d0c5f02a263458c3955ec0aae4ff09b95f195c59f4edd",
-                "sha256:f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4"
+                "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c",
+                "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"
             ],
-            "version": "==2020.11.8"
+            "version": "==2020.12.5"
         },
         "chardet": {
             "hashes": [
-                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
-                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
+                "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
+                "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
             ],
-            "version": "==3.0.4"
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+            "version": "==4.0.0"
         },
         "idna": {
             "hashes": [
@@ -40,90 +41,56 @@
         },
         "numpy": {
             "hashes": [
-                "sha256:08308c38e44cc926bdfce99498b21eec1f848d24c302519e64203a8da99a97db",
-                "sha256:09c12096d843b90eafd01ea1b3307e78ddd47a55855ad402b157b6c4862197ce",
-                "sha256:13d166f77d6dc02c0a73c1101dd87fdf01339febec1030bd810dcd53fff3b0f1",
-                "sha256:141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512",
-                "sha256:16c1b388cc31a9baa06d91a19366fb99ddbe1c7b205293ed072211ee5bac1ed2",
-                "sha256:18bed2bcb39e3f758296584337966e68d2d5ba6aab7e038688ad53c8f889f757",
-                "sha256:1aeef46a13e51931c0b1cf8ae1168b4a55ecd282e6688fdb0a948cc5a1d5afb9",
-                "sha256:27d3f3b9e3406579a8af3a9f262f5339005dd25e0ecf3cf1559ff8a49ed5cbf2",
-                "sha256:2a2740aa9733d2e5b2dfb33639d98a64c3b0f24765fed86b0fd2aec07f6a0a08",
-                "sha256:4377e10b874e653fe96985c05feed2225c912e328c8a26541f7fc600fb9c637b",
-                "sha256:448ebb1b3bf64c0267d6b09a7cba26b5ae61b6d2dbabff7c91b660c7eccf2bdb",
-                "sha256:50e86c076611212ca62e5a59f518edafe0c0730f7d9195fec718da1a5c2bb1fc",
-                "sha256:5734bdc0342aba9dfc6f04920988140fb41234db42381cf7ccba64169f9fe7ac",
-                "sha256:64324f64f90a9e4ef732be0928be853eee378fd6a01be21a0a8469c4f2682c83",
-                "sha256:6ae6c680f3ebf1cf7ad1d7748868b39d9f900836df774c453c11c5440bc15b36",
-                "sha256:6d7593a705d662be5bfe24111af14763016765f43cb6923ed86223f965f52387",
-                "sha256:8cac8790a6b1ddf88640a9267ee67b1aee7a57dfa2d2dd33999d080bc8ee3a0f",
-                "sha256:8ece138c3a16db8c1ad38f52eb32be6086cc72f403150a79336eb2045723a1ad",
-                "sha256:9eeb7d1d04b117ac0d38719915ae169aa6b61fca227b0b7d198d43728f0c879c",
-                "sha256:a09f98011236a419ee3f49cedc9ef27d7a1651df07810ae430a6b06576e0b414",
-                "sha256:a5d897c14513590a85774180be713f692df6fa8ecf6483e561a6d47309566f37",
-                "sha256:ad6f2ff5b1989a4899bf89800a671d71b1612e5ff40866d1f4d8bcf48d4e5764",
-                "sha256:c42c4b73121caf0ed6cd795512c9c09c52a7287b04d105d112068c1736d7c753",
-                "sha256:cb1017eec5257e9ac6209ac172058c430e834d5d2bc21961dceeb79d111e5909",
-                "sha256:d6c7bb82883680e168b55b49c70af29b84b84abb161cbac2800e8fcb6f2109b6",
-                "sha256:e452dc66e08a4ce642a961f134814258a082832c78c90351b75c41ad16f79f63",
-                "sha256:e5b6ed0f0b42317050c88022349d994fe72bfe35f5908617512cd8c8ef9da2a9",
-                "sha256:e9b30d4bd69498fc0c3fe9db5f62fffbb06b8eb9321f92cc970f2969be5e3949",
-                "sha256:ec149b90019852266fec2341ce1db513b843e496d5a8e8cdb5ced1923a92faab",
-                "sha256:edb01671b3caae1ca00881686003d16c2209e07b7ef8b7639f1867852b948f7c",
-                "sha256:f0d3929fe88ee1c155129ecd82f981b8856c5d97bcb0d5f23e9b4242e79d1de3",
-                "sha256:f29454410db6ef8126c83bd3c968d143304633d45dc57b51252afbd79d700893",
-                "sha256:fe45becb4c2f72a0907c1d0246ea6449fe7a9e2293bb0e11c4e9a32bb0930a15",
-                "sha256:fedbd128668ead37f33917820b704784aff695e0019309ad446a6d0b065b57e4"
+                "sha256:0d28a54afcf46f1f9ebd163e49ad6b49087f22986fefd01a23ca0c1cdda25ca6",
+                "sha256:1264c66129f5ef63187649dd43f1ca59532e8c098723643336a85131c0dcce3f",
+                "sha256:1abc02e30e3efd81a4571e00f8e62bf42e343c76698e0a3e11d9c2b3ee0d77a7",
+                "sha256:2445a96fbae23a4109c61be0f0af0f3bc273905dc5687a710850c1dfde0fc994",
+                "sha256:2bf0e68c92ef077fe766e53f8937d8ac341bdbca68ec128ae049b7d5c34e3206",
+                "sha256:33edfc0eb229f86f539493917b34035054313a11afbed48404aaf9f86bf4b0f6",
+                "sha256:3d8233c03f116d068d5365fed4477f2947c7229582dad81e5953088989294cec",
+                "sha256:4d592264d2a4f368afbb4288b5ceb646d4cbaf559c0249c096fbb0a149806b90",
+                "sha256:5ae765dd29c71a555f8102281f6fb15a3f4dbd35f6e7daf36af9df6d9dd716a5",
+                "sha256:894aaee60043a98b03f0ad992c810f62e3a15f98a701e1c0f58a4f4a0df13429",
+                "sha256:89bd70c9ad540febe6c28451ba225eb4e49d27f64728357f512c808002325dfa",
+                "sha256:93c2abea7bb69f47029b84ceac30ab46dfcfdb99b671ad850a333ff794a765e4",
+                "sha256:abdfa075e293d73638ece434708aa60b510dc6e70d805f57f481a0f550b25a9e",
+                "sha256:afeee581b50df20ef07b736e62ca612858f1fcdba96651d26ab44e3d567a4e6e",
+                "sha256:b51b9ef0624f4b01b846c981034c10d2e30db33f9f8be71e992f3900741f6f77",
+                "sha256:b66a6c15d793eda7cdad986e737775aa31b9306d588c14dd0277d2dda5546150",
+                "sha256:cb257bb0c0a3176c32782a63cfab2eace7eabfa2a3b2dfd85a13700617ccaf28",
+                "sha256:cf5d9dcbdbe523fa665c5309cce5f144648d94a7fddbf5a40f8e0d5c9f5b596d",
+                "sha256:d1bc331e1706fd1809a1bc8a31205329e5b30cf5ba50461c624da267e99f6ae6",
+                "sha256:db5e69d08756a2fa75a42b4e433880b6187768fe1bc73d21819def893e5128c6",
+                "sha256:e3db646af9f6a145f0c57202f4b55d4a33f975e395e78fb7b394644c17c1a3a6",
+                "sha256:e9c5fd330d2fedf06051bafb996252de9b032fcb2ec03eefc9a543e56efa66d4",
+                "sha256:eee454d3aa3955d0c0069a0f265fea47f1e1384c35a110a95efed358eb6e1562",
+                "sha256:f1e9424e9aa3834ea27cc12f9c6ea8ace5da18ee60a720bb3a85b2f733f41782"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==1.19.4"
+            "markers": "python_version >= '3.7'",
+            "version": "==1.20.0"
         },
         "pandas": {
             "hashes": [
-                "sha256:09e0503758ad61afe81c9069505f8cb8c1e36ea8cc1e6826a95823ef5b327daf",
-                "sha256:0a11a6290ef3667575cbd4785a1b62d658c25a2fd70a5adedba32e156a8f1773",
-                "sha256:0d9a38a59242a2f6298fff45d09768b78b6eb0c52af5919ea9e45965d7ba56d9",
-                "sha256:112c5ba0f9ea0f60b2cc38c25f87ca1d5ca10f71efbee8e0f1bee9cf584ed5d5",
-                "sha256:185cf8c8f38b169dbf7001e1a88c511f653fbb9dfa3e048f5e19c38049e991dc",
-                "sha256:3aa8e10768c730cc1b610aca688f588831fa70b65a26cb549fbb9f35049a05e0",
-                "sha256:41746d520f2b50409dffdba29a15c42caa7babae15616bcf80800d8cfcae3d3e",
-                "sha256:43cea38cbcadb900829858884f49745eb1f42f92609d368cabcc674b03e90efc",
-                "sha256:5378f58172bd63d8c16dd5d008d7dcdd55bf803fcdbe7da2dcb65dbbf322f05b",
-                "sha256:54404abb1cd3f89d01f1fb5350607815326790efb4789be60508f458cdd5ccbf",
-                "sha256:5dac3aeaac5feb1016e94bde851eb2012d1733a222b8afa788202b836c97dad5",
-                "sha256:5fdb2a61e477ce58d3f1fdf2470ee142d9f0dde4969032edaf0b8f1a9dafeaa2",
-                "sha256:6613c7815ee0b20222178ad32ec144061cb07e6a746970c9160af1ebe3ad43b4",
-                "sha256:6d2b5b58e7df46b2c010ec78d7fb9ab20abf1d306d0614d3432e7478993fbdb0",
-                "sha256:8a5d7e57b9df2c0a9a202840b2881bb1f7a648eba12dd2d919ac07a33a36a97f",
-                "sha256:8b4c2055ebd6e497e5ecc06efa5b8aa76f59d15233356eb10dad22a03b757805",
-                "sha256:a15653480e5b92ee376f8458197a58cca89a6e95d12cccb4c2d933df5cecc63f",
-                "sha256:a7d2547b601ecc9a53fd41561de49a43d2231728ad65c7713d6b616cd02ddbed",
-                "sha256:a979d0404b135c63954dea79e6246c45dd45371a88631cdbb4877d844e6de3b6",
-                "sha256:b1f8111635700de7ac350b639e7e452b06fc541a328cf6193cf8fc638804bab8",
-                "sha256:c5a3597880a7a29a31ebd39b73b2c824316ae63a05c3c8a5ce2aea3fc68afe35",
-                "sha256:c681e8fcc47a767bf868341d8f0d76923733cbdcabd6ec3a3560695c69f14a1e",
-                "sha256:cf135a08f306ebbcfea6da8bf775217613917be23e5074c69215b91e180caab4",
-                "sha256:e2b8557fe6d0a18db4d61c028c6af61bfed44ef90e419ed6fadbdc079eba141e"
+                "sha256:050ed2c9d825ef36738e018454e6d055c63d947c1d52010fbadd7584f09df5db",
+                "sha256:055647e7f4c5e66ba92c2a7dcae6c2c57898b605a3fb007745df61cc4015937f",
+                "sha256:23ac77a3a222d9304cb2a7934bb7b4805ff43d513add7a42d1a22dc7df14edd2",
+                "sha256:2de012a36cc507debd9c3351b4d757f828d5a784a5fc4e6766eafc2b56e4b0f5",
+                "sha256:30e9e8bc8c5c17c03d943e8d6f778313efff59e413b8dbdd8214c2ed9aa165f6",
+                "sha256:324e60bea729cf3b55c1bf9e88fe8b9932c26f8669d13b928e3c96b3a1453dff",
+                "sha256:37443199f451f8badfe0add666e43cdb817c59fa36bceedafd9c543a42f236ca",
+                "sha256:47ec0808a8357ab3890ce0eca39a63f79dcf941e2e7f494470fe1c9ec43f6091",
+                "sha256:496fcc29321e9a804d56d5aa5d7ec1320edfd1898eee2f451aa70171cf1d5a29",
+                "sha256:50e6c0a17ef7f831b5565fd0394dbf9bfd5d615ee4dd4bb60a3d8c9d2e872323",
+                "sha256:5527c5475d955c0bc9689c56865aaa2a7b13c504d6c44f0aadbf57b565af5ebd",
+                "sha256:57d5c7ac62925a8d2ab43ea442b297a56cc8452015e71e24f4aa7e4ed6be3d77",
+                "sha256:9d45f58b03af1fea4b48e44aa38a819a33dccb9821ef9e1d68f529995f8a632f",
+                "sha256:b26e2dabda73d347c7af3e6fed58483161c7b87a886a4e06d76ccfe55a044aa9",
+                "sha256:cfd237865d878da9b65cfee883da5e0067f5e2ff839e459466fb90565a77bda3",
+                "sha256:d7cca42dba13bfee369e2944ae31f6549a55831cba3117e17636955176004088",
+                "sha256:fe7de6fed43e7d086e3d947651ec89e55ddf00102f9dd5758763d56d182f0564"
             ],
             "index": "pypi",
-            "version": "==1.1.4"
-        },
-        "psutil": {
-            "hashes": [
-                "sha256:01bc82813fbc3ea304914581954979e637bcc7084e59ac904d870d6eb8bb2bc7",
-                "sha256:1cd6a0c9fb35ece2ccf2d1dd733c1e165b342604c67454fd56a4c12e0a106787",
-                "sha256:2cb55ef9591b03ef0104bedf67cc4edb38a3edf015cf8cf24007b99cb8497542",
-                "sha256:56c85120fa173a5d2ad1d15a0c6e0ae62b388bfb956bb036ac231fbdaf9e4c22",
-                "sha256:5d9106ff5ec2712e2f659ebbd112967f44e7d33f40ba40530c485cc5904360b8",
-                "sha256:6a3e1fd2800ca45083d976b5478a2402dd62afdfb719b30ca46cd28bb25a2eb4",
-                "sha256:ade6af32eb80a536eff162d799e31b7ef92ddcda707c27bbd077238065018df4",
-                "sha256:af73f7bcebdc538eda9cc81d19db1db7bf26f103f91081d780bbacfcb620dee2",
-                "sha256:e02c31b2990dcd2431f4524b93491941df39f99619b0d312dfe1d4d530b08b4b",
-                "sha256:fa38ac15dbf161ab1e941ff4ce39abd64b53fec5ddf60c23290daed2bc7d1157",
-                "sha256:fbcac492cb082fa38d88587d75feb90785d05d7e12d4565cbf1ecc727aff71b7"
-            ],
-            "index": "pypi",
-            "version": "==5.7.3"
+            "version": "==1.2.1"
         },
         "python-dateutil": {
             "hashes": [
@@ -135,18 +102,18 @@
         },
         "pytz": {
             "hashes": [
-                "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268",
-                "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd"
+                "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da",
+                "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"
             ],
-            "version": "==2020.4"
+            "version": "==2021.1"
         },
         "requests": {
             "hashes": [
-                "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8",
-                "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"
+                "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
+                "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
             ],
             "index": "pypi",
-            "version": "==2.25.0"
+            "version": "==2.25.1"
         },
         "six": {
             "hashes": [
@@ -158,11 +125,11 @@
         },
         "urllib3": {
             "hashes": [
-                "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08",
-                "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"
+                "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80",
+                "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-            "version": "==1.26.2"
+            "version": "==1.26.3"
         }
     },
     "develop": {
@@ -180,6 +147,14 @@
             ],
             "version": "==1.4.4"
         },
+        "appnope": {
+            "hashes": [
+                "sha256:93aa393e9d6c54c5cd570ccadd8edad61ea0c4b9ea7a01409020c9aa019eb442",
+                "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a"
+            ],
+            "markers": "sys_platform == 'darwin'",
+            "version": "==0.1.2"
+        },
         "attrs": {
             "hashes": [
                 "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
@@ -213,11 +188,11 @@
         },
         "bleach": {
             "hashes": [
-                "sha256:52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080",
-                "sha256:9f8ccbeb6183c6e6cddea37592dfb0167485c1e3b13b3363bc325aa8bda3adbd"
+                "sha256:6123ddc1052673e52bab52cdc955bcb57a015264a1c57d37bea2f6b817af0125",
+                "sha256:98b3170739e5e83dd9dc19633f074727ad848cbedb6026708c8ac2d3b697a433"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==3.2.1"
+            "version": "==3.3.0"
         },
         "cached-property": {
             "hashes": [
@@ -234,58 +209,18 @@
         },
         "certifi": {
             "hashes": [
-                "sha256:1f422849db327d534e3d0c5f02a263458c3955ec0aae4ff09b95f195c59f4edd",
-                "sha256:f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4"
-            ],
-            "version": "==2020.11.8"
-        },
-        "cffi": {
-            "hashes": [
-                "sha256:00a1ba5e2e95684448de9b89888ccd02c98d512064b4cb987d48f4b40aa0421e",
-                "sha256:00e28066507bfc3fe865a31f325c8391a1ac2916219340f87dfad602c3e48e5d",
-                "sha256:045d792900a75e8b1e1b0ab6787dd733a8190ffcf80e8c8ceb2fb10a29ff238a",
-                "sha256:0638c3ae1a0edfb77c6765d487fee624d2b1ee1bdfeffc1f0b58c64d149e7eec",
-                "sha256:105abaf8a6075dc96c1fe5ae7aae073f4696f2905fde6aeada4c9d2926752362",
-                "sha256:155136b51fd733fa94e1c2ea5211dcd4c8879869008fc811648f16541bf99668",
-                "sha256:1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c",
-                "sha256:1d2c4994f515e5b485fd6d3a73d05526aa0fcf248eb135996b088d25dfa1865b",
-                "sha256:2c24d61263f511551f740d1a065eb0212db1dbbbbd241db758f5244281590c06",
-                "sha256:51a8b381b16ddd370178a65360ebe15fbc1c71cf6f584613a7ea08bfad946698",
-                "sha256:594234691ac0e9b770aee9fcdb8fa02c22e43e5c619456efd0d6c2bf276f3eb2",
-                "sha256:5cf4be6c304ad0b6602f5c4e90e2f59b47653ac1ed9c662ed379fe48a8f26b0c",
-                "sha256:64081b3f8f6f3c3de6191ec89d7dc6c86a8a43911f7ecb422c60e90c70be41c7",
-                "sha256:6bc25fc545a6b3d57b5f8618e59fc13d3a3a68431e8ca5fd4c13241cd70d0009",
-                "sha256:798caa2a2384b1cbe8a2a139d80734c9db54f9cc155c99d7cc92441a23871c03",
-                "sha256:7c6b1dece89874d9541fc974917b631406233ea0440d0bdfbb8e03bf39a49b3b",
-                "sha256:840793c68105fe031f34d6a086eaea153a0cd5c491cde82a74b420edd0a2b909",
-                "sha256:8d6603078baf4e11edc4168a514c5ce5b3ba6e3e9c374298cb88437957960a53",
-                "sha256:9cc46bc107224ff5b6d04369e7c595acb700c3613ad7bcf2e2012f62ece80c35",
-                "sha256:9f7a31251289b2ab6d4012f6e83e58bc3b96bd151f5b5262467f4bb6b34a7c26",
-                "sha256:9ffb888f19d54a4d4dfd4b3f29bc2c16aa4972f1c2ab9c4ab09b8ab8685b9c2b",
-                "sha256:a5ed8c05548b54b998b9498753fb9cadbfd92ee88e884641377d8a8b291bcc01",
-                "sha256:a7711edca4dcef1a75257b50a2fbfe92a65187c47dab5a0f1b9b332c5919a3fb",
-                "sha256:af5c59122a011049aad5dd87424b8e65a80e4a6477419c0c1015f73fb5ea0293",
-                "sha256:b18e0a9ef57d2b41f5c68beefa32317d286c3d6ac0484efd10d6e07491bb95dd",
-                "sha256:b4e248d1087abf9f4c10f3c398896c87ce82a9856494a7155823eb45a892395d",
-                "sha256:ba4e9e0ae13fc41c6b23299545e5ef73055213e466bd107953e4a013a5ddd7e3",
-                "sha256:c6332685306b6417a91b1ff9fae889b3ba65c2292d64bd9245c093b1b284809d",
-                "sha256:d5ff0621c88ce83a28a10d2ce719b2ee85635e85c515f12bac99a95306da4b2e",
-                "sha256:d9efd8b7a3ef378dd61a1e77367f1924375befc2eba06168b6ebfa903a5e59ca",
-                "sha256:df5169c4396adc04f9b0a05f13c074df878b6052430e03f50e68adf3a57aa28d",
-                "sha256:ebb253464a5d0482b191274f1c8bf00e33f7e0b9c66405fbffc61ed2c839c775",
-                "sha256:ec80dc47f54e6e9a78181ce05feb71a0353854cc26999db963695f950b5fb375",
-                "sha256:f032b34669220030f905152045dfa27741ce1a6db3324a5bc0b96b6c7420c87b",
-                "sha256:f60567825f791c6f8a592f3c6e3bd93dd2934e3f9dac189308426bd76b00ef3b",
-                "sha256:f803eaa94c2fcda012c047e62bc7a51b0bdabda1cad7a92a522694ea2d76e49f"
-            ],
-            "version": "==1.14.4"
+                "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c",
+                "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"
+            ],
+            "version": "==2020.12.5"
         },
         "chardet": {
             "hashes": [
-                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
-                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
+                "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
+                "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
             ],
-            "version": "==3.0.4"
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+            "version": "==4.0.0"
         },
         "click": {
             "hashes": [
@@ -312,71 +247,58 @@
         },
         "coverage": {
             "hashes": [
-                "sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516",
-                "sha256:0f313707cdecd5cd3e217fc68c78a960b616604b559e9ea60cc16795c4304259",
-                "sha256:1c6703094c81fa55b816f5ae542c6ffc625fec769f22b053adb42ad712d086c9",
-                "sha256:1d44bb3a652fed01f1f2c10d5477956116e9b391320c94d36c6bf13b088a1097",
-                "sha256:280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0",
-                "sha256:29a6272fec10623fcbe158fdf9abc7a5fa032048ac1d8631f14b50fbfc10d17f",
-                "sha256:2b31f46bf7b31e6aa690d4c7a3d51bb262438c6dcb0d528adde446531d0d3bb7",
-                "sha256:2d43af2be93ffbad25dd959899b5b809618a496926146ce98ee0b23683f8c51c",
-                "sha256:381ead10b9b9af5f64646cd27107fb27b614ee7040bb1226f9c07ba96625cbb5",
-                "sha256:47a11bdbd8ada9b7ee628596f9d97fbd3851bd9999d398e9436bd67376dbece7",
-                "sha256:4d6a42744139a7fa5b46a264874a781e8694bb32f1d76d8137b68138686f1729",
-                "sha256:50691e744714856f03a86df3e2bff847c2acede4c191f9a1da38f088df342978",
-                "sha256:530cc8aaf11cc2ac7430f3614b04645662ef20c348dce4167c22d99bec3480e9",
-                "sha256:582ddfbe712025448206a5bc45855d16c2e491c2dd102ee9a2841418ac1c629f",
-                "sha256:63808c30b41f3bbf65e29f7280bf793c79f54fb807057de7e5238ffc7cc4d7b9",
-                "sha256:71b69bd716698fa62cd97137d6f2fdf49f534decb23a2c6fc80813e8b7be6822",
-                "sha256:7858847f2d84bf6e64c7f66498e851c54de8ea06a6f96a32a1d192d846734418",
-                "sha256:78e93cc3571fd928a39c0b26767c986188a4118edc67bc0695bc7a284da22e82",
-                "sha256:7f43286f13d91a34fadf61ae252a51a130223c52bfefb50310d5b2deb062cf0f",
-                "sha256:86e9f8cd4b0cdd57b4ae71a9c186717daa4c5a99f3238a8723f416256e0b064d",
-                "sha256:8f264ba2701b8c9f815b272ad568d555ef98dfe1576802ab3149c3629a9f2221",
-                "sha256:9342dd70a1e151684727c9c91ea003b2fb33523bf19385d4554f7897ca0141d4",
-                "sha256:9361de40701666b034c59ad9e317bae95c973b9ff92513dd0eced11c6adf2e21",
-                "sha256:9669179786254a2e7e57f0ecf224e978471491d660aaca833f845b72a2df3709",
-                "sha256:aac1ba0a253e17889550ddb1b60a2063f7474155465577caa2a3b131224cfd54",
-                "sha256:aef72eae10b5e3116bac6957de1df4d75909fc76d1499a53fb6387434b6bcd8d",
-                "sha256:bd3166bb3b111e76a4f8e2980fa1addf2920a4ca9b2b8ca36a3bc3dedc618270",
-                "sha256:c1b78fb9700fc961f53386ad2fd86d87091e06ede5d118b8a50dea285a071c24",
-                "sha256:c3888a051226e676e383de03bf49eb633cd39fc829516e5334e69b8d81aae751",
-                "sha256:c5f17ad25d2c1286436761b462e22b5020d83316f8e8fcb5deb2b3151f8f1d3a",
-                "sha256:c851b35fc078389bc16b915a0a7c1d5923e12e2c5aeec58c52f4aa8085ac8237",
-                "sha256:cb7df71de0af56000115eafd000b867d1261f786b5eebd88a0ca6360cccfaca7",
-                "sha256:cedb2f9e1f990918ea061f28a0f0077a07702e3819602d3507e2ff98c8d20636",
-                "sha256:e8caf961e1b1a945db76f1b5fa9c91498d15f545ac0ababbe575cfab185d3bd8"
+                "sha256:03ed2a641e412e42cc35c244508cf186015c217f0e4d496bf6d7078ebe837ae7",
+                "sha256:04b14e45d6a8e159c9767ae57ecb34563ad93440fc1b26516a89ceb5b33c1ad5",
+                "sha256:0cdde51bfcf6b6bd862ee9be324521ec619b20590787d1655d005c3fb175005f",
+                "sha256:0f48fc7dc82ee14aeaedb986e175a429d24129b7eada1b7e94a864e4f0644dde",
+                "sha256:107d327071061fd4f4a2587d14c389a27e4e5c93c7cba5f1f59987181903902f",
+                "sha256:1375bb8b88cb050a2d4e0da901001347a44302aeadb8ceb4b6e5aa373b8ea68f",
+                "sha256:14a9f1887591684fb59fdba8feef7123a0da2424b0652e1b58dd5b9a7bb1188c",
+                "sha256:16baa799ec09cc0dcb43a10680573269d407c159325972dd7114ee7649e56c66",
+                "sha256:1b811662ecf72eb2d08872731636aee6559cae21862c36f74703be727b45df90",
+                "sha256:1ccae21a076d3d5f471700f6d30eb486da1626c380b23c70ae32ab823e453337",
+                "sha256:2f2cf7a42d4b7654c9a67b9d091ec24374f7c58794858bff632a2039cb15984d",
+                "sha256:322549b880b2d746a7672bf6ff9ed3f895e9c9f108b714e7360292aa5c5d7cf4",
+                "sha256:32ab83016c24c5cf3db2943286b85b0a172dae08c58d0f53875235219b676409",
+                "sha256:3fe50f1cac369b02d34ad904dfe0771acc483f82a1b54c5e93632916ba847b37",
+                "sha256:4a780807e80479f281d47ee4af2eb2df3e4ccf4723484f77da0bb49d027e40a1",
+                "sha256:4a8eb7785bd23565b542b01fb39115a975fefb4a82f23d407503eee2c0106247",
+                "sha256:5bee3970617b3d74759b2d2df2f6a327d372f9732f9ccbf03fa591b5f7581e39",
+                "sha256:60a3307a84ec60578accd35d7f0c71a3a971430ed7eca6567399d2b50ef37b8c",
+                "sha256:6625e52b6f346a283c3d563d1fd8bae8956daafc64bb5bbd2b8f8a07608e3994",
+                "sha256:66a5aae8233d766a877c5ef293ec5ab9520929c2578fd2069308a98b7374ea8c",
+                "sha256:68fb816a5dd901c6aff352ce49e2a0ffadacdf9b6fae282a69e7a16a02dad5fb",
+                "sha256:6b588b5cf51dc0fd1c9e19f622457cc74b7d26fe295432e434525f1c0fae02bc",
+                "sha256:6c4d7165a4e8f41eca6b990c12ee7f44fef3932fac48ca32cecb3a1b2223c21f",
+                "sha256:6d2e262e5e8da6fa56e774fb8e2643417351427604c2b177f8e8c5f75fc928ca",
+                "sha256:6d9c88b787638a451f41f97446a1c9fd416e669b4d9717ae4615bd29de1ac135",
+                "sha256:755c56beeacac6a24c8e1074f89f34f4373abce8b662470d3aa719ae304931f3",
+                "sha256:7e40d3f8eb472c1509b12ac2a7e24158ec352fc8567b77ab02c0db053927e339",
+                "sha256:812eaf4939ef2284d29653bcfee9665f11f013724f07258928f849a2306ea9f9",
+                "sha256:84df004223fd0550d0ea7a37882e5c889f3c6d45535c639ce9802293b39cd5c9",
+                "sha256:859f0add98707b182b4867359e12bde806b82483fb12a9ae868a77880fc3b7af",
+                "sha256:87c4b38288f71acd2106f5d94f575bc2136ea2887fdb5dfe18003c881fa6b370",
+                "sha256:89fc12c6371bf963809abc46cced4a01ca4f99cba17be5e7d416ed7ef1245d19",
+                "sha256:9564ac7eb1652c3701ac691ca72934dd3009997c81266807aef924012df2f4b3",
+                "sha256:9754a5c265f991317de2bac0c70a746efc2b695cf4d49f5d2cddeac36544fb44",
+                "sha256:a565f48c4aae72d1d3d3f8e8fb7218f5609c964e9c6f68604608e5958b9c60c3",
+                "sha256:a636160680c6e526b84f85d304e2f0bb4e94f8284dd765a1911de9a40450b10a",
+                "sha256:a839e25f07e428a87d17d857d9935dd743130e77ff46524abb992b962eb2076c",
+                "sha256:b62046592b44263fa7570f1117d372ae3f310222af1fc1407416f037fb3af21b",
+                "sha256:b7f7421841f8db443855d2854e25914a79a1ff48ae92f70d0a5c2f8907ab98c9",
+                "sha256:ba7ca81b6d60a9f7a0b4b4e175dcc38e8fef4992673d9d6e6879fd6de00dd9b8",
+                "sha256:bb32ca14b4d04e172c541c69eec5f385f9a075b38fb22d765d8b0ce3af3a0c22",
+                "sha256:c0ff1c1b4d13e2240821ef23c1efb1f009207cb3f56e16986f713c2b0e7cd37f",
+                "sha256:c669b440ce46ae3abe9b2d44a913b5fd86bb19eb14a8701e88e3918902ecd345",
+                "sha256:c67734cff78383a1f23ceba3b3239c7deefc62ac2b05fa6a47bcd565771e5880",
+                "sha256:c6809ebcbf6c1049002b9ac09c127ae43929042ec1f1dbd8bb1615f7cd9f70a0",
+                "sha256:cd601187476c6bed26a0398353212684c427e10a903aeafa6da40c63309d438b",
+                "sha256:ebfa374067af240d079ef97b8064478f3bf71038b78b017eb6ec93ede1b6bcec",
+                "sha256:fbb17c0d0822684b7d6c09915677a32319f16ff1115df5ec05bdcaaee40b35f3",
+                "sha256:fff1f3a586246110f34dc762098b5afd2de88de507559e63553d7da643053786"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-            "version": "==5.3"
-        },
-        "cryptography": {
-            "hashes": [
-                "sha256:07ca431b788249af92764e3be9a488aa1d39a0bc3be313d826bbec690417e538",
-                "sha256:13b88a0bd044b4eae1ef40e265d006e34dbcde0c2f1e15eb9896501b2d8f6c6f",
-                "sha256:32434673d8505b42c0de4de86da8c1620651abd24afe91ae0335597683ed1b77",
-                "sha256:3cd75a683b15576cfc822c7c5742b3276e50b21a06672dc3a800a2d5da4ecd1b",
-                "sha256:4e7268a0ca14536fecfdf2b00297d4e407da904718658c1ff1961c713f90fd33",
-                "sha256:545a8550782dda68f8cdc75a6e3bf252017aa8f75f19f5a9ca940772fc0cb56e",
-                "sha256:55d0b896631412b6f0c7de56e12eb3e261ac347fbaa5d5e705291a9016e5f8cb",
-                "sha256:5849d59358547bf789ee7e0d7a9036b2d29e9a4ddf1ce5e06bb45634f995c53e",
-                "sha256:6dc59630ecce8c1f558277ceb212c751d6730bd12c80ea96b4ac65637c4f55e7",
-                "sha256:7117319b44ed1842c617d0a452383a5a052ec6aa726dfbaffa8b94c910444297",
-                "sha256:75e8e6684cf0034f6bf2a97095cb95f81537b12b36a8fedf06e73050bb171c2d",
-                "sha256:7b8d9d8d3a9bd240f453342981f765346c87ade811519f98664519696f8e6ab7",
-                "sha256:a035a10686532b0587d58a606004aa20ad895c60c4d029afa245802347fab57b",
-                "sha256:a4e27ed0b2504195f855b52052eadcc9795c59909c9d84314c5408687f933fc7",
-                "sha256:a733671100cd26d816eed39507e585c156e4498293a907029969234e5e634bc4",
-                "sha256:a75f306a16d9f9afebfbedc41c8c2351d8e61e818ba6b4c40815e2b5740bb6b8",
-                "sha256:bd717aa029217b8ef94a7d21632a3bb5a4e7218a4513d2521c2a2fd63011e98b",
-                "sha256:d25cecbac20713a7c3bc544372d42d8eafa89799f492a43b79e1dfd650484851",
-                "sha256:d26a2557d8f9122f9bf445fc7034242f4375bd4e95ecda007667540270965b13",
-                "sha256:d3545829ab42a66b84a9aaabf216a4dce7f16dbc76eb69be5c302ed6b8f4a29b",
-                "sha256:d3d5e10be0cf2a12214ddee45c6bd203dab435e3d83b4560c03066eda600bfe3",
-                "sha256:efe15aca4f64f3a7ea0c09c87826490e50ed166ce67368a68f315ea0807a20df"
-            ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==3.2.1"
+            "version": "==5.4"
         },
         "decorator": {
             "hashes": [
@@ -425,11 +347,11 @@
         },
         "ipython": {
             "hashes": [
-                "sha256:c987e8178ced651532b3b1ff9965925bfd445c279239697052561a9ab806d28f",
-                "sha256:cbb2ef3d5961d44e6a963b9817d4ea4e1fa2eb589c371a470fed14d8d40cbd6a"
+                "sha256:1918dea4bfdc5d1a830fcfce9a710d1d809cbed123e85eab0539259cb0f56640",
+                "sha256:1923af00820a8cf58e91d56b89efc59780a6e81363b94464a0f17c039dffff9e"
             ],
             "index": "pypi",
-            "version": "==7.19.0"
+            "version": "==7.20.0"
         },
         "ipython-genutils": {
             "hashes": [
@@ -440,35 +362,27 @@
         },
         "jedi": {
             "hashes": [
-                "sha256:86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20",
-                "sha256:98cc583fa0f2f8304968199b01b6b4b94f469a1f4a74c1560506ca2a211378b5"
-            ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==0.17.2"
-        },
-        "jeepney": {
-            "hashes": [
-                "sha256:7d59b6622675ca9e993a6bd38de845051d315f8b0c72cca3aef733a20b648657",
-                "sha256:aec56c0eb1691a841795111e184e13cad504f7703b9a64f63020816afa79a8ae"
+                "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93",
+                "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"
             ],
-            "markers": "sys_platform == 'linux'",
-            "version": "==0.6.0"
+            "markers": "python_version >= '3.6'",
+            "version": "==0.18.0"
         },
         "jinja2": {
             "hashes": [
-                "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0",
-                "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"
+                "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419",
+                "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==2.11.2"
+            "version": "==2.11.3"
         },
         "keyring": {
             "hashes": [
-                "sha256:12de23258a95f3b13e5b167f7a641a878e91eab8ef16fafc077720a95e6115bb",
-                "sha256:207bd66f2a9881c835dad653da04e196c678bf104f8252141d2d3c4f31051579"
+                "sha256:9acb3e1452edbb7544822b12fd25459078769e560fa51f418b6d00afaa6178df",
+                "sha256:9f44660a5d4931bdc14c08a1d01ef30b18a7a8147380710d8c9f9531e1f6c3c0"
             ],
             "markers": "python_version >= '3.6'",
-            "version": "==21.5.0"
+            "version": "==22.0.1"
         },
         "markupsafe": {
             "hashes": [
@@ -477,8 +391,12 @@
                 "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
                 "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
                 "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42",
+                "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f",
+                "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39",
                 "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
                 "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
+                "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014",
+                "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f",
                 "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
                 "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
                 "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
@@ -487,24 +405,39 @@
                 "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
                 "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15",
                 "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
+                "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85",
+                "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1",
                 "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
                 "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
                 "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
+                "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850",
+                "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0",
                 "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
                 "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
+                "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb",
                 "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
                 "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
                 "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
+                "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1",
+                "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2",
                 "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
                 "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
                 "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
+                "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7",
                 "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
+                "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8",
                 "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
+                "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193",
                 "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
+                "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b",
                 "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
                 "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2",
+                "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5",
+                "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c",
+                "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032",
                 "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
-                "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"
+                "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be",
+                "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
             "version": "==1.1.1"
@@ -518,19 +451,19 @@
         },
         "packaging": {
             "hashes": [
-                "sha256:05af3bb85d320377db281cf254ab050e1a7ebcbf5410685a9a407e18a1f81236",
-                "sha256:eb41423378682dadb7166144a4926e443093863024de508ca5c9737d6bc08376"
+                "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5",
+                "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==20.7"
+            "version": "==20.9"
         },
         "parso": {
             "hashes": [
-                "sha256:97218d9159b2520ff45eb78028ba8b50d2bc61dcc062a9682666f2dc4bd331ea",
-                "sha256:caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9"
+                "sha256:15b00182f472319383252c18d5913b69269590616c947747bc50bf4ac768f410",
+                "sha256:8519430ad07087d4c997fda3a7918f7cfa27cb58972a8c89c2a0295a1c940e9e"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==0.7.1"
+            "markers": "python_version >= '3.6'",
+            "version": "==0.8.1"
         },
         "pathspec": {
             "hashes": [
@@ -585,10 +518,10 @@
         },
         "pkginfo": {
             "hashes": [
-                "sha256:a6a4ac943b496745cec21f14f021bbd869d5e9b4f6ec06918cffea5a2f4b9193",
-                "sha256:ce14d7296c673dc4c61c759a0b6c14bae34e34eb819c0017bb6ca5b7292c56e9"
+                "sha256:029a70cb45c6171c329dfc890cde0879f8c52d6f3922794796e06f577bb03db4",
+                "sha256:9fdbea6495622e022cc72c2e5e1b735218e4ffb2a2a69cde2694a6c1f16afb75"
             ],
-            "version": "==1.6.1"
+            "version": "==1.7.0"
         },
         "plette": {
             "extras": [
@@ -611,50 +544,42 @@
         },
         "prompt-toolkit": {
             "hashes": [
-                "sha256:25c95d2ac813909f813c93fde734b6e44406d1477a9faef7c915ff37d39c0a8c",
-                "sha256:7debb9a521e0b1ee7d2fe96ee4bd60ef03c6492784de0547337ca4433e46aa63"
+                "sha256:7e966747c18ececaec785699626b771c1ba8344c8d31759a1915d6b12fad6525",
+                "sha256:c96b30925025a7635471dc083ffb6af0cc67482a00611bd81aeaeeeb7e5a5e12"
             ],
             "markers": "python_full_version >= '3.6.1'",
-            "version": "==3.0.8"
+            "version": "==3.0.14"
         },
         "ptyprocess": {
             "hashes": [
-                "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
-                "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
+                "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
+                "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
             ],
-            "version": "==0.6.0"
+            "version": "==0.7.0"
         },
         "py": {
             "hashes": [
-                "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2",
-                "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"
-            ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==1.9.0"
-        },
-        "pycparser": {
-            "hashes": [
-                "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0",
-                "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"
+                "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3",
+                "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==2.20"
+            "version": "==1.10.0"
         },
         "pydata-sphinx-theme": {
             "hashes": [
-                "sha256:4e95d0dca0a64ba9471a89cdb6197cf8bb81b31f75ad0b7b6f0e85196fb7fe39",
-                "sha256:b40a1b45dea0f1fa6c444b6c977ff25e20abf615c53e7e69ca771370dcd75579"
+                "sha256:8cf8fbc74c6c47d6ed497a91f3bedf94d57383b52eebb4fa05ae7fc4f50767a2",
+                "sha256:aa0ae055de5de36a637387941d0e18d8dad35d97d56f0faf25f5219658d49df2"
             ],
             "index": "pypi",
-            "version": "==0.4.1"
+            "version": "==0.4.3"
         },
         "pygments": {
             "hashes": [
-                "sha256:381985fcc551eb9d37c52088a32914e00517e57f4a21609f48141ba08e193fa0",
-                "sha256:88a0bbcd659fcb9573703957c6b9cff9fab7295e6e76db54c9d00ae42df32773"
+                "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435",
+                "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"
             ],
             "markers": "python_version >= '3.5'",
-            "version": "==2.7.2"
+            "version": "==2.7.4"
         },
         "pyparsing": {
             "hashes": [
@@ -666,19 +591,19 @@
         },
         "pytest": {
             "hashes": [
-                "sha256:4288fed0d9153d9646bfcdf0c0428197dba1ecb27a33bb6e031d002fa88653fe",
-                "sha256:c0a7e94a8cdbc5422a51ccdad8e6f1024795939cc89159a0ae7f0b316ad3823e"
+                "sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9",
+                "sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"
             ],
             "index": "pypi",
-            "version": "==6.1.2"
+            "version": "==6.2.2"
         },
         "pytest-cov": {
             "hashes": [
-                "sha256:45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191",
-                "sha256:47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e"
+                "sha256:359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7",
+                "sha256:bdb9fdb0b85a7cc825269a4c56b48ccaa5c7e365054b6038772c32ddcdc969da"
             ],
             "index": "pypi",
-            "version": "==2.10.1"
+            "version": "==2.11.1"
         },
         "python-dateutil": {
             "hashes": [
@@ -690,10 +615,10 @@
         },
         "pytz": {
             "hashes": [
-                "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268",
-                "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd"
+                "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da",
+                "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"
             ],
-            "version": "==2020.4"
+            "version": "==2021.1"
         },
         "readme-renderer": {
             "hashes": [
@@ -704,11 +629,11 @@
         },
         "recommonmark": {
             "hashes": [
-                "sha256:29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb",
-                "sha256:2ec4207a574289355d5b6ae4ae4abb29043346ca12cdd5f07d374dc5987d2852"
+                "sha256:1b1db69af0231efce3fa21b94ff627ea33dee7079a01dd0a7f8482c3da148b3f",
+                "sha256:bdb4db649f2222dcd8d2d844f0006b958d627f732415d399791ee436a3686d67"
             ],
             "index": "pypi",
-            "version": "==0.6.0"
+            "version": "==0.7.1"
         },
         "regex": {
             "hashes": [
@@ -758,11 +683,11 @@
         },
         "requests": {
             "hashes": [
-                "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8",
-                "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"
+                "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
+                "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
             ],
             "index": "pypi",
-            "version": "==2.25.0"
+            "version": "==2.25.1"
         },
         "requests-toolbelt": {
             "hashes": [
@@ -786,14 +711,6 @@
             ],
             "version": "==1.4.0"
         },
-        "secretstorage": {
-            "hashes": [
-                "sha256:30cfdef28829dad64d6ea1ed08f8eff6aa115a77068926bcc9f5225d5a3246aa",
-                "sha256:5c36f6537a523ec5f969ef9fad61c98eb9e017bc601d811e53aa25bece64892f"
-            ],
-            "markers": "sys_platform == 'linux'",
-            "version": "==3.3.0"
-        },
         "six": {
             "hashes": [
                 "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
@@ -804,18 +721,18 @@
         },
         "snowballstemmer": {
             "hashes": [
-                "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0",
-                "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"
+                "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2",
+                "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"
             ],
-            "version": "==2.0.0"
+            "version": "==2.1.0"
         },
         "sphinx": {
             "hashes": [
-                "sha256:1e8d592225447104d1172be415bc2972bd1357e3e12fdc76edf2261105db4300",
-                "sha256:d4e59ad4ea55efbb3c05cde3bfc83bfc14f0c95aa95c3d75346fcce186a47960"
+                "sha256:41cad293f954f7d37f803d97eb184158cfd90f51195131e94875bc07cd08b93c",
+                "sha256:c314c857e7cd47c856d2c5adff514ac2e6495f8b8e0f886a8a37e9305dfea0d8"
             ],
             "index": "pypi",
-            "version": "==3.3.1"
+            "version": "==3.4.3"
         },
         "sphinxcontrib-applehelp": {
             "hashes": [
@@ -883,11 +800,11 @@
         },
         "tqdm": {
             "hashes": [
-                "sha256:5c0d04e06ccc0da1bd3fa5ae4550effcce42fcad947b4a6cafa77bdc9b09ff22",
-                "sha256:9e7b8ab0ecbdbf0595adadd5f0ebbb9e69010e0bd48bbb0c15e550bf2a5292df"
+                "sha256:4621f6823bab46a9cc33d48105753ccbea671b68bab2c50a9f0be23d4065cb5a",
+                "sha256:fe3d08dd00a526850568d542ff9de9bbc2a09a791da3c334f3213d8d0bbbca65"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==4.54.0"
+            "version": "==4.56.0"
         },
         "traitlets": {
             "hashes": [
@@ -899,54 +816,54 @@
         },
         "twine": {
             "hashes": [
-                "sha256:34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab",
-                "sha256:ba9ff477b8d6de0c89dd450e70b2185da190514e91c42cc62f96850025c10472"
+                "sha256:2f6942ec2a17417e19d2dd372fc4faa424c87ee9ce49b4e20c427eb00a0f3f41",
+                "sha256:fcffa8fc37e8083a5be0728371f299598870ee1eccc94e9a25cef7b1dcfa8297"
             ],
             "index": "pypi",
-            "version": "==3.2.0"
+            "version": "==3.3.0"
         },
         "typed-ast": {
             "hashes": [
-                "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355",
-                "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919",
-                "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d",
-                "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa",
-                "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652",
-                "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75",
-                "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c",
-                "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01",
-                "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d",
-                "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1",
-                "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907",
-                "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c",
-                "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3",
-                "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d",
-                "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b",
-                "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614",
-                "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c",
-                "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb",
-                "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395",
-                "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b",
-                "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41",
-                "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6",
-                "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34",
-                "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe",
-                "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072",
-                "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298",
-                "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91",
-                "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4",
-                "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f",
-                "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"
-            ],
-            "version": "==1.4.1"
+                "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1",
+                "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d",
+                "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6",
+                "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd",
+                "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37",
+                "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151",
+                "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07",
+                "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440",
+                "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70",
+                "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496",
+                "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea",
+                "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400",
+                "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc",
+                "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606",
+                "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc",
+                "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581",
+                "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412",
+                "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a",
+                "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2",
+                "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787",
+                "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f",
+                "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937",
+                "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64",
+                "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487",
+                "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b",
+                "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41",
+                "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a",
+                "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3",
+                "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166",
+                "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10"
+            ],
+            "version": "==1.4.2"
         },
         "urllib3": {
             "hashes": [
-                "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08",
-                "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"
+                "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80",
+                "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-            "version": "==1.26.2"
+            "version": "==1.26.3"
         },
         "vistir": {
             "hashes": [
@@ -972,11 +889,11 @@
         },
         "wheel": {
             "hashes": [
-                "sha256:906864fb722c0ab5f2f9c35b2c65e3af3c009402c108a709c0aca27bc2c9187b",
-                "sha256:aaef9b8c36db72f8bf7f1e54f85f875c4d466819940863ca0b3f3f77f0a1646f"
+                "sha256:78b5b185f0e5763c26ca1e324373aadd49182ca90e825f7853f4b2509215dc0e",
+                "sha256:e11eefd162658ea59a60a0f6c7d493a7190ea4b9a85e335b33489d9f17e0245e"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==0.36.1"
+            "version": "==0.36.2"
         }
     }
 }
diff --git a/dev-requirements.txt b/dev-requirements.txt
index f34c06b..6a310eb 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -11,21 +11,20 @@
 -i https://pypi.org/simple
 alabaster==0.7.12
 appdirs==1.4.4
+appnope==0.1.2; sys_platform == 'darwin'
 attrs==20.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
 babel==2.9.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
 backcall==0.2.0
 black==19.10b0; python_version >= '3.6'
-bleach==3.2.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
+bleach==3.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 cached-property==1.5.2
 cerberus==1.3.2
-certifi==2020.11.8
-cffi==1.14.4
-chardet==3.0.4
+certifi==2020.12.5
+chardet==4.0.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 click==7.1.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 colorama==0.4.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 commonmark==0.9.1
-coverage==5.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
-cryptography==3.2.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
+coverage==5.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
 decorator==4.4.2
 distlib==0.3.1
 docutils==0.16; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
@@ -33,17 +32,16 @@ idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.
 imagesize==1.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
 iniconfig==1.1.1
 ipython-genutils==0.2.0
-ipython==7.19.0
-jedi==0.17.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
-jeepney==0.6.0; sys_platform == 'linux'
-jinja2==2.11.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
-keyring==21.5.0; python_version >= '3.6'
+ipython==7.20.0
+jedi==0.18.0; python_version >= '3.6'
+jinja2==2.11.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
+keyring==22.0.1; python_version >= '3.6'
 markupsafe==1.1.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-numpy==1.19.4; python_version >= '3.6'
+numpy==1.20.0; python_version >= '3.7'
 orderedmultidict==1.0.1
-packaging==20.7; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-pandas==1.1.4
-parso==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
+packaging==20.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
+pandas==1.2.1
+parso==0.8.1; python_version >= '3.6'
 pathspec==0.8.1
 pep517==0.9.1
 pexpect==4.8.0; sys_platform != 'win32'
@@ -51,32 +49,29 @@ pickleshare==0.7.5
 pip-shims==0.5.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 pipenv-setup==3.1.1
 pipfile==0.0.2
-pkginfo==1.6.1
+pkginfo==1.7.0
 plette[validation]==0.2.3; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
 pluggy==0.13.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-prompt-toolkit==3.0.8; python_full_version >= '3.6.1'
-psutil==5.7.3
-ptyprocess==0.6.0
-py==1.9.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-pydata-sphinx-theme==0.4.1
-pygments==2.7.2; python_version >= '3.5'
+prompt-toolkit==3.0.14; python_full_version >= '3.6.1'
+ptyprocess==0.7.0
+py==1.10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
+pydata-sphinx-theme==0.4.3
+pygments==2.7.4; python_version >= '3.5'
 pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
-pytest-cov==2.10.1
-pytest==6.1.2
+pytest-cov==2.11.1
+pytest==6.2.2
 python-dateutil==2.8.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-pytz==2020.4
+pytz==2021.1
 readme-renderer==28.0
-recommonmark==0.6.0
+recommonmark==0.7.1
 regex==2020.11.13
 requests-toolbelt==0.9.1
-requests==2.25.0
+requests==2.25.1
 requirementslib==1.5.16; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 rfc3986==1.4.0
-secretstorage==3.3.0; sys_platform == 'linux'
 six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-snowballstemmer==2.0.0
-sphinx==3.3.1
+snowballstemmer==2.1.0
+sphinx==3.4.3
 sphinxcontrib-applehelp==1.0.2; python_version >= '3.5'
 sphinxcontrib-devhelp==1.0.2; python_version >= '3.5'
 sphinxcontrib-htmlhelp==1.0.3; python_version >= '3.5'
@@ -85,12 +80,12 @@ sphinxcontrib-qthelp==1.0.3; python_version >= '3.5'
 sphinxcontrib-serializinghtml==1.1.4; python_version >= '3.5'
 toml==0.10.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
 tomlkit==0.7.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
-tqdm==4.54.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
+tqdm==4.56.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
 traitlets==5.0.5; python_version >= '3.7'
-twine==3.2.0
-typed-ast==1.4.1
-urllib3==1.26.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
+twine==3.3.0
+typed-ast==1.4.2
+urllib3==1.26.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
 vistir==0.5.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
 wcwidth==0.2.5
 webencodings==0.5.1
-wheel==0.36.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
+wheel==0.36.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
diff --git a/pycmc/utilities.py b/pycmc/utilities.py
index d54377c..84f5eb2 100644
--- a/pycmc/utilities.py
+++ b/pycmc/utilities.py
@@ -9,7 +9,6 @@
 import json
 import time
 import requests
-import psutil
 from importlib import reload
 from . import credentials_manager
 import datetime
@@ -55,23 +54,6 @@ def ProjectRootDir():
     return f"{Path(__file__).parent.parent}/"
 
 
-def FindProcess(name):
-    """
-    Return a list of processes matching given name.
-
-    **Parameters**
-
-    - `name`:        string process name
-
-    **Returns**
-
-    list of items matching process 'name'
-    """
-    it = psutil.process_iter(attrs=["name"])
-    result = [p for p in it if p.info["name"] == name]
-    return result
-
-
 def BaseURL():
     return f"https://api.chartmetric.com/api"
 
diff --git a/requirements.txt b/requirements.txt
index 976219a..6e6a2a6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,14 +6,13 @@
 #
 
 -i https://pypi.org/simple
-certifi==2020.11.8
-chardet==3.0.4
+certifi==2020.12.5
+chardet==4.0.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
 idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-numpy==1.19.4; python_version >= '3.6'
-pandas==1.1.4
-psutil==5.7.3
+numpy==1.20.0; python_version >= '3.7'
+pandas==1.2.1
 python-dateutil==2.8.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-pytz==2020.4
-requests==2.25.0
+pytz==2021.1
+requests==2.25.1
 six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
-urllib3==1.26.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
+urllib3==1.26.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'


Test patch:
diff --git a/tests/conftest.py b/tests/conftest.py
index ae452d3..13ec23a 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -20,7 +20,7 @@
 @pytest.fixture(scope="function", autouse=True)
 def slowRoll():
     """Slow down the tests."""
-    time.sleep(6)
+    time.sleep(2)
     yield
 
 
@@ -50,7 +50,7 @@ def todayStr():
 
 @pytest.fixture(scope="module")
 def dates(todayStr):
-    return dict(start="2020-05-01", end="2020-08-07")  # fridays!
+    return dict(start="2020-11-27", end="2021-01-22")  # fridays!
 
 
 @pytest.fixture(scope="module")
@@ -69,7 +69,7 @@ def timestampStr():
 @pytest.fixture(scope="module")
 def types():
     youtube_types = {
-        "added_at": type(pd.to_datetime("2019-01-01")),
+        "added_at": type(pd.to_datetime("2020-01-01")),
         "artist_covers_1": type(str()),
         "artist_images_1": type(str()),
         "artist_name": type(str()),
@@ -81,7 +81,7 @@ def types():
         "image_url": type(str()),
         "isrc": type(str()),
         "name": type(str()),
-        "peak_date": type(pd.to_datetime("2019-01-01")),
+        "peak_date": type(pd.to_datetime("2020-01-01")),
         "peak_rank": type(np.float64()),
         "position": type(np.float64()),
         "pre_rank": type(np.float64()),
@@ -98,7 +98,7 @@ def types():
     }
 
     apple_types = {
-        "added_at": type(pd.to_datetime("2019-01-01")),
+        "added_at": type(pd.to_datetime("2020-01-01")),
         "album_ids_1": type(np.float64()),
         "album_label_1": type(str()),
         "album_names_1": type(str()),
@@ -122,20 +122,20 @@ def types():
         "itunes_artist_ids_1": type(np.float64()),
         "itunes_artist_names_1": type(str()),
         "itunes_track_ids_1": type(np.float64()),
-        "peak_date": type(pd.to_datetime("2019-01-01")),
+        "peak_date": type(pd.to_datetime("2020-05-01")),
         "peak_rank": type(np.float64()),
         "pre_rank": type(np.float64()),
         "rank": type(np.float64()),
         "rank_1d_ago": type(np.float64()),
         "rank_today": type(np.float64()),
-        "release_dates_1": type(pd.to_datetime("2019-01-01")),
+        "release_dates_1": type(pd.to_datetime("2020-05-01")),
         "storefronts_1": type(str()),
         "time_on_chart": type(np.float64()),
         "track_genre_1": type(str()),
     }
 
     itunes_types = {
-        "added_at": type(pd.to_datetime("2019-01-01")),
+        "added_at": type(pd.to_datetime("2020-05-01")),
         "album_ids_1": type(np.float64()),
         "album_label_1": type(str()),
         "album_names_1": type(str()),
@@ -159,20 +159,20 @@ def types():
         "itunes_artist_ids_1": type(np.float64()),
         "itunes_artist_names_1": type(str()),
         "itunes_track_ids_1": type(np.float64()),
-        "peak_date": type(pd.to_datetime("2019-01-01")),
+        "peak_date": type(pd.to_datetime("2020-05-01")),
         "peak_rank": type(np.float64()),
         "pre_rank": type(np.float64()),
         "rank": type(np.float64()),
         "rank_1d_ago": type(np.float64()),
         "rank_today": type(np.float64()),
-        "release_dates_1": type(pd.to_datetime("2019-01-01")),
+        "release_dates_1": type(pd.to_datetime("2020-05-01")),
         "storefronts_1": type(str()),
         "time_on_chart": type(np.float64()),
         "track_genre_1": type(str()),
     }
 
     shazam_types = {
-        "added_at": type(pd.to_datetime("2019-01-01")),
+        "added_at": type(pd.to_datetime("2020-05-01")),
         "album_ids_1": type(np.float64()),
         "album_label_1": type(str()),
         "album_names_1": type(str()),
@@ -198,20 +198,20 @@ def types():
         "itunes_track_ids_1": type(np.float64()),
         "shazam_track_id": type(str()),
         "num_of_shazams": type(np.float64()),
-        "peak_date": type(pd.to_datetime("2019-01-01")),
+        "peak_date": type(pd.to_datetime("2020-05-01")),
         "peak_rank": type(np.float64()),
         "pre_rank": type(np.float64()),
         "rank": type(np.float64()),
         "rank_1d_ago": type(np.float64()),
         "rank_today": type(np.float64()),
-        "release_dates_1": type(pd.to_datetime("2019-01-01")),
+        "release_dates_1": type(pd.to_datetime("2020-05-01")),
         "storefronts_1": type(str()),
         "time_on_chart": type(np.float64()),
         "track_genre_1": type(str()),
     }
 
     spotify_types = {
-        "added_at": type(pd.to_datetime("2019-01-01")),
+        "added_at": type(pd.to_datetime("2020-05-01")),
         "album_ids_1": type(np.float64()),
         "album_label_1": type(str()),
         "album_names_1": type(str()),
@@ -231,7 +231,7 @@ def types():
         "image_url": type(str()),
         "isrc": type(str()),
         "name": type(str()),
-        "peak_date": type(pd.to_datetime("2019-01-01")),
+        "peak_date": type(pd.to_datetime("2020-05-01")),
         "peak_rank": type(np.float64()),
         "pre_rank": type(np.float64()),
         "rank": type(np.float64()),
@@ -239,7 +239,7 @@ def types():
         "rank_today": type(np.float64()),
         "plays_1d_ago": type(np.float64()),
         "plays_today": type(np.float64()),
-        "release_dates_1": type(pd.to_datetime("2019-01-01")),
+        "release_dates_1": type(pd.to_datetime("2020-05-01")),
         "spotify": type(str()),
         "spotify_album_id": type(str()),
         "time_on_chart": type(np.float64()),
diff --git a/tests/test_album.py b/tests/test_album.py
index 5e02210..ee8dfc6 100644
--- a/tests/test_album.py
+++ b/tests/test_album.py
@@ -35,7 +35,7 @@ def test_metadata(requestkeys):
     # standard use
     for key in requestkeys:
         assert key in test.keys()
-    assert isinstance(test["id"], int)
+    # assert isinstance(test["id"], int)
     assert isinstance(test["name"], str)
     assert isinstance(test["release_date"], str)
     assert isinstance(pd.to_datetime(test["release_date"]), datetime.datetime)
diff --git a/tests/test_artist.py b/tests/test_artist.py
index 421d1da..1e6309b 100644
--- a/tests/test_artist.py
+++ b/tests/test_artist.py
@@ -20,7 +20,7 @@ def test_cpp_data():
 
 
 def test_charts(dates):
-    test = pycmc.artist.charts("spotify_top_daily", "4904", dates["start"])
+    test = pycmc.artist.charts("spotify_top_daily", "3648", dates["start"])
     assert isinstance(test, list)
     assert len(test)
 
diff --git a/tests/test_charts.py b/tests/test_charts.py
index f7ec5fb..678fcf4 100644
--- a/tests/test_charts.py
+++ b/tests/test_charts.py
@@ -49,13 +49,17 @@ def test_beatport_tracks(dates):
 
     From the Chartmetric documentation,
     > This data is updated weekly only (on Fridays).
+
+    > _Note: As of February 2021, this endpoint is returning `artist_name` and `track_name` and `id` is now `beatport` keys, different from other endpoints._
     """
     test = pycmc.charts.beatport.tracks(dates["end"])
     assert isinstance(test, list)
     assert len(test)
     assert len(test) < 200
-    assert test[0]["name"] != ""
-    assert test[0]["id"] != ""
+    print(test)
+    assert test[0]["artist_name"] != ""
+    assert test[0]["track_name"] != ""
+    assert test[0]["beatport"] != ""
 
 
 def test_cm_score_tracks(dates):
@@ -63,7 +67,7 @@ def test_cm_score_tracks(dates):
     This fails because of empty return.
     """
     test = pycmc.charts.cm_score.tracks(
-        "22960734", "spotify-top", "2019-06-01"
+        "22960734", "spotify-top", dates["end"]
     )
     assert isinstance(test, list)
     assert len(test)
@@ -74,7 +78,11 @@ def test_cm_score_artists(dates):
     This fails because of 400 Client Error.
     Likely due to 'itunes-albums' as chart_type.
     """
-    test = pycmc.charts.cm_score.artists("4904", "spotify-top", "2019-06-01")
+    test = pycmc.charts.cm_score.artists(
+        cm_artist_id="3963",
+        chart_type="spotify-top",
+        start_date=dates["start"],
+    )
     assert isinstance(test, list)
     assert len(test)
 
@@ -83,7 +91,11 @@ def test_cm_score_albums(dates):
     """
     This fails because of empty return.
     """
-    test = pycmc.charts.cm_score.albums("2757004", "spotify-top", "2019-06-01")
+    test = pycmc.charts.cm_score.albums(
+        cm_album_id="6943281",
+        chart_type="spotify-top",
+        start_date=dates["start"],
+    )
     assert isinstance(test, list)
     assert len(test)
 
diff --git a/tests/test_utilities.py b/tests/test_utilities.py
index 8799f0c..e9835d3 100644
--- a/tests/test_utilities.py
+++ b/tests/test_utilities.py
@@ -14,10 +14,10 @@ def test_projectrootdir():
     assert f"{Path(__file__).parent.parent}/" == utilities.ProjectRootDir()
 
 
-def test_FindProcess():
-    assert utilities.FindProcess("root") is not None
-    # the below is bogus but should use to test a process on the machine
-    assert len(utilities.FindProcess("root")) == 0
+# def test_FindProcess():
+#    assert utilities.FindProcess("root") is not None
+#    # the below is bogus but should use to test a process on the machine
+#    assert len(utilities.FindProcess("root")) == 0
 
 
 def test_BaseURL():