pygame installed but doesn't load

~/coinprice-indicator$ ./run.sh
~/coinprice-indicator$ Traceback (most recent call last):
  File "coin/coin.py", line 17, in <module>
    from indicator import Indicator
  File "/home/user/coinprice-indicator/coin/indicator.py", line 8, in <module>
    from alarm import Alarm, AlarmSettingsWindow
  File "/home/user/coinprice-indicator/coin/alarm.py", line 4, in <module>
    import pygame
ImportError: No module named 'pygame'

Requirement packages is installed.
~/coinprice-indicator$ python3 -V
Python 3.5.2

~/coinprice-indicator$ dpkg -l |grep -E 'python-pygame|python3-gi|python3-yaml|python-notify|python-idna|python-requests|python-ruamel|python-urllib3|python-dbus|python-chardet|python-certifi'
ii  python-certifi                              2<IP_ADDRESS>-2                                                              all          root certificates for validating SSL certs and verifying TLS hosts
ii  python-chardet                              2.3.0-2                                                                     all          universal character encoding detector for Python2
ii  python-dbus                                 1.2.0-3                                                                     amd64        simple interprocess messaging system (Python interface)
ii  python-idna                                 2.0-3                                                                       all          Python IDNA2008 (RFC 5891) handling (Python 2)
ii  python-notify                               0.1.1-4                                                                     amd64        Python bindings for libnotify
ii  python-pygame                               1.9.1release+dfsg-10                                                        amd64        SDL bindings for games development in Python
ii  python-ruamel.ordereddict                   0.4.9-1                                                                     amd64        dictionary that keeps keys in insertion resp. sorted order
ii  python-ruamel.yaml                          0.10.23-1                                                                   amd64        roundtrip YAML parser/emitter (Python 2 module)
ii  python-urllib3                              1.13.1-2ubuntu<IP_ADDRESS>                                                     all          HTTP library with thread-safe connection pooling for Python
ii  python3-gi                                  3.20.0-0ubuntu1                                                             amd64        Python 3 bindings for gobject-introspection libraries
ii  python3-gi-cairo                            3.20.0-0ubuntu1                                                             amd64        Python 3 Cairo bindings for the GObject library
ii  python3-yaml                                3.11-3build1                                                                amd64        YAML parser and emitter for Python3

I'm using fresh Coin Price Indicator repository clone.
OS Ubuntu 16.04.5

did you run ./install.sh first?

Sure, I did.
~/coinprice-indicator$ ./install.sh
Swipe your finger across the fingerprint reader
Reading package lists... Done
Building dependency tree
Reading state information... Done
virtualenv is already the newest version (15.0.1+ds-3ubuntu1).
The following package was automatically installed and is no longer required:
  python-psutil
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
./install.sh: line 5: pip3: command not found
./install.sh: line 6: vext: command not found

~/coinprice-indicator$ ./run.sh
~/coinprice-indicator$ Traceback (most recent call last):
  File "coin/coin.py", line 17, in <module>
    from indicator import Indicator
  File "/home/user/coinprice-indicator/coin/indicator.py", line 8, in <module>
    from alarm import Alarm, AlarmSettingsWindow
  File "/home/user/coinprice-indicator/coin/alarm.py", line 4, in <module>
    import pygame
ImportError: No module named 'pygame'

The installation fails because you don't have Python3. Unfortunately, this software will only run with python3. I've fixed the install script in 0f921dce23b741fe31f94b7ba474c9978863225e to make sure only python3 is used (if you have it!)

Thanks for help.
I've update install.sh script and run it again:
~/coinprice-indicator$ ./install.sh
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/set/soft/lin/other/unity/coinprice-indicator/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/set/soft/lin/other/unity/coinprice-indicator/bin/python2
Not overwriting existing python script /home/set/soft/lin/other/unity/coinprice-indicator/bin/python (you must use /home/set/soft/lin/other/unity/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
./install.sh: line 5: pip3: command not found
./install.sh: line 6: vext: command not found

Then I've installed python3-venv with apt-get.
At this time installation script worked but again with errors:
~/coinprice-indicator$ ./install.sh
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
Overwriting /home/user/coinprice-indicator/bin/activate with new content
Overwriting /home/user/coinprice-indicator/bin/activate.fish with new content
Overwriting /home/user/coinprice-indicator/bin/activate.csh with new content
Collecting certifi==2018.8.24 (from -r requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl (147kB)
    100% |████████████████████████████████| 153kB 724kB/s
Collecting chardet==3.0.4 (from -r requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 2.5MB/s
Collecting dbus-python==1.2.8 (from -r requirements.txt (line 3))
  Downloading https://files.pythonhosted.org/packages/3f/e7/4edb582d1ffd5ac3c84188deea32e960b5c8c0fe1da56ce70224f85ce542/dbus-python-1.2.8.tar.gz (787kB)
    100% |████████████████████████████████| 788kB 819kB/s
Collecting idna==2.7 (from -r requirements.txt (line 4))
  Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB)
    100% |████████████████████████████████| 61kB 1.8MB/s
Collecting notify2==0.3.1 (from -r requirements.txt (line 5))
  Downloading https://files.pythonhosted.org/packages/f9/69/99d2bc2d98a802b6f58d1e0a774a933b3fea5ef11455379561b71c04370b/notify2-0.3.1-py2.py3-none-any.whl
Collecting pycairo==1.17.1 (from -r requirements.txt (line 6))
  Downloading https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz (194kB)
    100% |████████████████████████████████| 194kB 1.2MB/s
Collecting pygame==1.9.4 (from -r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/ec/8c/acba4494370dd1f68af341a76084c4c1f10f1ca258a741ace4f526716935/pygame-1.9.4-cp35-cp35m-manylinux1_x86_64.whl (12.1MB)
    100% |████████████████████████████████| 12.1MB 110kB/s
Collecting PyYAML==3.13 (from -r requirements.txt (line 8))
  Downloading https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz (270kB)
    100% |████████████████████████████████| 276kB 2.1MB/s
Collecting requests==2.19.1 (from -r requirements.txt (line 9))
  Downloading https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (91kB)
    100% |████████████████████████████████| 92kB 3.6MB/s
Collecting ruamel.base==1.0.0 (from -r requirements.txt (line 10))
  Downloading https://files.pythonhosted.org/packages/1f/e1/5257f5d1636a26fdb50cdcc0e7e5e65d230b88c2dd5090ac797b9e45d1d3/ruamel.base-1.0.0-py3-none-any.whl
Collecting ruamel.yaml==0.15.64 (from -r requirements.txt (line 11))
  Downloading https://files.pythonhosted.org/packages/88/d5/be4751ad2887ca66ba6ccda11615bf5d26ff1e347319ac78a15b71232bdd/ruamel.yaml-0.15.64-cp35-cp35m-manylinux1_x86_64.whl (625kB)
    100% |████████████████████████████████| 634kB 1.5MB/s
Collecting urllib3==1.23 (from -r requirements.txt (line 12))
  Downloading https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 2.5MB/s
Collecting vext==0.7.0 (from -r requirements.txt (line 13))
  Downloading https://files.pythonhosted.org/packages/c1/f0/9fe7f5f6273f03c29e80f760f44cf451bd768c0ec2c1e2f8a5d255357058/vext-0.7.0.tar.gz
Collecting vext.gi==0.7.0 (from -r requirements.txt (line 14))
  Downloading https://files.pythonhosted.org/packages/9b/bb/67b71fd0f03acc9b5ed2b030c1934d56daf46b884699a24d170254a5fa25/vext.gi-0.7.0.tar.gz
Building wheels for collected packages: dbus-python, pycairo, PyYAML, vext, vext.gi
  Running setup.py bdist_wheel for dbus-python ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/dbus-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpter5sjxbpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for dbus-python
  Running setup.py clean for dbus-python
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpihqrmuzqpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
  Running setup.py bdist_wheel for PyYAML ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/PyYAML/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpfy7k7sp_pip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for PyYAML
  Running setup.py clean for PyYAML
  Running setup.py bdist_wheel for vext ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/vext/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpdziwhjnkpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext
  Running setup.py clean for vext
  Running setup.py bdist_wheel for vext.gi ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/vext.gi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpe8eaauk4pip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext.gi
  Running setup.py clean for vext.gi
Failed to build dbus-python pycairo PyYAML vext vext.gi
Installing collected packages: certifi, chardet, dbus-python, idna, notify2, pycairo, pygame, PyYAML, urllib3, requests, ruamel.base, ruamel.yaml, vext, vext.gi
  Running setup.py install for dbus-python ... error
    Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/dbus-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-y5mqrsxe-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/dbus-python:
    running install
    running build
    creating /tmp/pip-build-8naie5tn/dbus-python/build
    creating /tmp/pip-build-8naie5tn/dbus-python/build/temp.linux-x86_64-3.5
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... no
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking whether gcc understands -c and -o together... yes
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking whether it is safe to define __EXTENSIONS__... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... no
    checking for mawk... mawk
    checking whether make sets $(MAKE)... yes
    checking for style of include used by make...  BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 1572864
    checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
    checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for ar... ar
    checking for archiver @FILE support... @
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking for sysroot... no
    checking for a working dd... /bin/dd
    checking how to truncate binary pipes... /bin/dd bs=4096 count=1
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    checking for inline... inline
    checking for gawk... (cached) mawk
    checking for python... /home/user/coinprice-indicator/bin/python3
    checking for a version of Python >= '2.1.0'... yes
    checking for a version of Python >= '2.7'... yes
    checking for the distutils Python package... yes
    checking for Python include path... -I/usr/include/python3.5m
    checking for Python library path... -L/usr/lib -lpython3.5m
    checking for Python site-packages path... /home/user/coinprice-indicator/lib/python3.5/site-packages
    checking python extra libraries... -lpthread -ldl  -lutil -lm
    checking python extra linking flags... -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
    checking consistency of all components of python development environment... no
    configure: error: in `/tmp/pip-build-8naie5tn/dbus-python/build/temp.linux-x86_64-3.5':
    configure: error:
      Could not link test program to Python. Maybe the main Python library has been
      installed in some non-standard library path. If so, pass it to configure,
      via the LIBS environment variable.
      Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
      ============================================================================
       ERROR!
       You probably have to install the development version of the Python package
       for your distribution.  The exact name of this package varies among them.
      ============================================================================

    See `config.log' for more details
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-8naie5tn/dbus-python/setup.py", line 109, in <module>
        tests_require=['tap.py'],
      File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/user/coinprice-indicator/lib/python3.5/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/usr/lib/python3.5/distutils/command/install.py", line 583, in run
        self.run_command('build')
      File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/tmp/pip-build-8naie5tn/dbus-python/setup.py", line 62, in run
        cwd=builddir)
      File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/tmp/pip-build-8naie5tn/dbus-python/configure', '--disable-maintainer-mode', 'PYTHON=/home/user/coinprice-indicator/bin/python3', '--prefix=/tmp/pip-build-8naie5tn/dbus-python/build/temp.linux-x86_64-3.5/prefix']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-8naie5tn/dbus-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-y5mqrsxe-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/dbus-python" failed with error code 1 in /tmp/pip-build-8naie5tn/dbus-python/
You are using pip version 8.1.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
./install.sh: line 6: vext: command not found

Running indicator:
~/coinprice-indicator$ ./run.sh
set@thinkpad:~/soft/lin/other/unity/coinprice-indicator$ Traceback (most recent call last):
  File "coin/coin.py", line 9, in <module>
    import yaml
ImportError: No module named 'yaml'

So, I've installed python3-dev package since the script wrote that it needed a this package. But installation script failed again.
~/coinprice-indicator$ ./install.sh
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
Overwriting /home/user/coinprice-indicator/bin/activate with new content
Overwriting /home/user/coinprice-indicator/bin/activate.fish with new content
Overwriting /home/user/coinprice-indicator/bin/activate.csh with new content
Requirement already satisfied (use --upgrade to upgrade): certifi==2018.8.24 in ./lib/python3.5/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): chardet==3.0.4 in ./lib/python3.5/site-packages (from -r requirements.txt (line 2))
Collecting dbus-python==1.2.8 (from -r requirements.txt (line 3))
  Using cached https://files.pythonhosted.org/packages/3f/e7/4edb582d1ffd5ac3c84188deea32e960b5c8c0fe1da56ce70224f85ce542/dbus-python-1.2.8.tar.gz
Collecting idna==2.7 (from -r requirements.txt (line 4))
  Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting notify2==0.3.1 (from -r requirements.txt (line 5))
  Using cached https://files.pythonhosted.org/packages/f9/69/99d2bc2d98a802b6f58d1e0a774a933b3fea5ef11455379561b71c04370b/notify2-0.3.1-py2.py3-none-any.whl
Collecting pycairo==1.17.1 (from -r requirements.txt (line 6))
  Using cached https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz
Collecting pygame==1.9.4 (from -r requirements.txt (line 7))
  Using cached https://files.pythonhosted.org/packages/ec/8c/acba4494370dd1f68af341a76084c4c1f10f1ca258a741ace4f526716935/pygame-1.9.4-cp35-cp35m-manylinux1_x86_64.whl
Collecting PyYAML==3.13 (from -r requirements.txt (line 8))
  Using cached https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz
Collecting requests==2.19.1 (from -r requirements.txt (line 9))
  Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting ruamel.base==1.0.0 (from -r requirements.txt (line 10))
  Using cached https://files.pythonhosted.org/packages/1f/e1/5257f5d1636a26fdb50cdcc0e7e5e65d230b88c2dd5090ac797b9e45d1d3/ruamel.base-1.0.0-py3-none-any.whl
Collecting ruamel.yaml==0.15.64 (from -r requirements.txt (line 11))
  Using cached https://files.pythonhosted.org/packages/88/d5/be4751ad2887ca66ba6ccda11615bf5d26ff1e347319ac78a15b71232bdd/ruamel.yaml-0.15.64-cp35-cp35m-manylinux1_x86_64.whl
Collecting urllib3==1.23 (from -r requirements.txt (line 12))
  Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting vext==0.7.0 (from -r requirements.txt (line 13))
  Using cached https://files.pythonhosted.org/packages/c1/f0/9fe7f5f6273f03c29e80f760f44cf451bd768c0ec2c1e2f8a5d255357058/vext-0.7.0.tar.gz
Collecting vext.gi==0.7.0 (from -r requirements.txt (line 14))
  Using cached https://files.pythonhosted.org/packages/9b/bb/67b71fd0f03acc9b5ed2b030c1934d56daf46b884699a24d170254a5fa25/vext.gi-0.7.0.tar.gz
Building wheels for collected packages: dbus-python, pycairo, PyYAML, vext, vext.gi
  Running setup.py bdist_wheel for dbus-python ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/dbus-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmptmg8v3uxpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for dbus-python
  Running setup.py clean for dbus-python
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp7e6ijkoapip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
  Running setup.py bdist_wheel for PyYAML ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/PyYAML/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpr96idnevpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for PyYAML
  Running setup.py clean for PyYAML
  Running setup.py bdist_wheel for vext ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/vext/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp_wiizm7apip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext
  Running setup.py clean for vext
  Running setup.py bdist_wheel for vext.gi ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/vext.gi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpvwwu_th1pip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext.gi
  Running setup.py clean for vext.gi
Failed to build dbus-python pycairo PyYAML vext vext.gi
Installing collected packages: dbus-python, idna, notify2, pycairo, pygame, PyYAML, urllib3, requests, ruamel.base, ruamel.yaml, vext, vext.gi
  Running setup.py install for dbus-python ... done
  Running setup.py install for pycairo ... error
    Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0j0f5eq8-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.5/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-t3840dcq/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-0j0f5eq8-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo" failed with error code 1 in /tmp/pip-build-t3840dcq/pycairo/
You are using pip version 8.1.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
./install.sh: line 6: vext: command not found

This is strange. You're still not using python3. Can you just enter python3 -m venv ./ on the commandline while in the coinprice-indicator folder?

Hmm.
~/coinprice-indicator$ python3 -m venv ./
~/coinprice-indicator$

I don't think you have installed python3 properly, but you can try typing the contents of install.sh line by line into your terminal and tell me what you see.

right. So can you type line by line and copy the output?

Here it is
~/coinprice-indicator$ ./install.sh
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
Overwriting /home/user/coinprice-indicator/bin/activate with new content
Overwriting /home/user/coinprice-indicator/bin/activate.fish with new content
Overwriting /home/user/coinprice-indicator/bin/activate.csh with new content
Requirement already satisfied (use --upgrade to upgrade): certifi==2018.8.24 in ./lib/python3.5/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): chardet==3.0.4 in ./lib/python3.5/site-packages (from -r requirements.txt (line 2))
Requirement already satisfied (use --upgrade to upgrade): dbus-python==1.2.8 in ./lib/python3.5/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): idna==2.7 in ./lib/python3.5/site-packages (from -r requirements.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): notify2==0.3.1 in ./lib/python3.5/site-packages (from -r requirements.txt (line 5))
Collecting pycairo==1.17.1 (from -r requirements.txt (line 6))
  Using cached https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz
Collecting pygame==1.9.4 (from -r requirements.txt (line 7))
  Using cached https://files.pythonhosted.org/packages/ec/8c/acba4494370dd1f68af341a76084c4c1f10f1ca258a741ace4f526716935/pygame-1.9.4-cp35-cp35m-manylinux1_x86_64.whl
Collecting PyYAML==3.13 (from -r requirements.txt (line 8))
  Using cached https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz
Collecting requests==2.19.1 (from -r requirements.txt (line 9))
  Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting ruamel.base==1.0.0 (from -r requirements.txt (line 10))
  Using cached https://files.pythonhosted.org/packages/1f/e1/5257f5d1636a26fdb50cdcc0e7e5e65d230b88c2dd5090ac797b9e45d1d3/ruamel.base-1.0.0-py3-none-any.whl
Collecting ruamel.yaml==0.15.64 (from -r requirements.txt (line 11))
  Using cached https://files.pythonhosted.org/packages/88/d5/be4751ad2887ca66ba6ccda11615bf5d26ff1e347319ac78a15b71232bdd/ruamel.yaml-0.15.64-cp35-cp35m-manylinux1_x86_64.whl
Collecting urllib3==1.23 (from -r requirements.txt (line 12))
  Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting vext==0.7.0 (from -r requirements.txt (line 13))
  Using cached https://files.pythonhosted.org/packages/c1/f0/9fe7f5f6273f03c29e80f760f44cf451bd768c0ec2c1e2f8a5d255357058/vext-0.7.0.tar.gz
Collecting vext.gi==0.7.0 (from -r requirements.txt (line 14))
  Using cached https://files.pythonhosted.org/packages/9b/bb/67b71fd0f03acc9b5ed2b030c1934d56daf46b884699a24d170254a5fa25/vext.gi-0.7.0.tar.gz
Building wheels for collected packages: pycairo, PyYAML, vext, vext.gi
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-i15_spzy/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpj4cei93ypip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
  Running setup.py bdist_wheel for PyYAML ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-i15_spzy/PyYAML/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpo19n6kv5pip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for PyYAML
  Running setup.py clean for PyYAML
  Running setup.py bdist_wheel for vext ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-i15_spzy/vext/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpdq2df0tlpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext
  Running setup.py clean for vext
  Running setup.py bdist_wheel for vext.gi ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-i15_spzy/vext.gi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp54els6nepip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext.gi
  Running setup.py clean for vext.gi
Failed to build pycairo PyYAML vext vext.gi
Installing collected packages: pycairo, pygame, PyYAML, urllib3, requests, ruamel.base, ruamel.yaml, vext, vext.gi
  Running setup.py install for pycairo ... error
    Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-i15_spzy/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-qwt2vdbx-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.5/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-i15_spzy/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-qwt2vdbx-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo" failed with error code 1 in /tmp/pip-build-i15_spzy/pycairo/
You are using pip version 8.1.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
./install.sh: line 6: vext: command not found
~/coinprice-indicator$

Oh sorry, I misunderstood you... Is this what do you need?
~/coinprice-indicator$ python3 -m venv ./

~/coinprice-indicator$ virtualenv ./
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
Overwriting /home/user/coinprice-indicator/bin/activate with new content
Overwriting /home/user/coinprice-indicator/bin/activate.fish with new content
Overwriting /home/user/coinprice-indicator/bin/activate.csh with new content

~/coinprice-indicator$ source ./bin/activate

(coinprice-indicator) ~/coinprice-indicator$ pip3 install -r requirements.txt
Requirement already satisfied (use --upgrade to upgrade): certifi==2018.8.24 in ./lib/python3.5/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): chardet==3.0.4 in ./lib/python3.5/site-packages (from -r requirements.txt (line 2))
Requirement already satisfied (use --upgrade to upgrade): dbus-python==1.2.8 in ./lib/python3.5/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): idna==2.7 in ./lib/python3.5/site-packages (from -r requirements.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): notify2==0.3.1 in ./lib/python3.5/site-packages (from -r requirements.txt (line 5))
Collecting pycairo==1.17.1 (from -r requirements.txt (line 6))
  Using cached https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz
Collecting pygame==1.9.4 (from -r requirements.txt (line 7))
  Using cached https://files.pythonhosted.org/packages/ec/8c/acba4494370dd1f68af341a76084c4c1f10f1ca258a741ace4f526716935/pygame-1.9.4-cp35-cp35m-manylinux1_x86_64.whl
Collecting PyYAML==3.13 (from -r requirements.txt (line 8))
  Using cached https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz
Collecting requests==2.19.1 (from -r requirements.txt (line 9))
  Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting ruamel.base==1.0.0 (from -r requirements.txt (line 10))
  Using cached https://files.pythonhosted.org/packages/1f/e1/5257f5d1636a26fdb50cdcc0e7e5e65d230b88c2dd5090ac797b9e45d1d3/ruamel.base-1.0.0-py3-none-any.whl
Collecting ruamel.yaml==0.15.64 (from -r requirements.txt (line 11))
  Using cached https://files.pythonhosted.org/packages/88/d5/be4751ad2887ca66ba6ccda11615bf5d26ff1e347319ac78a15b71232bdd/ruamel.yaml-0.15.64-cp35-cp35m-manylinux1_x86_64.whl
Collecting urllib3==1.23 (from -r requirements.txt (line 12))
  Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting vext==0.7.0 (from -r requirements.txt (line 13))
  Using cached https://files.pythonhosted.org/packages/c1/f0/9fe7f5f6273f03c29e80f760f44cf451bd768c0ec2c1e2f8a5d255357058/vext-0.7.0.tar.gz
Collecting vext.gi==0.7.0 (from -r requirements.txt (line 14))
  Using cached https://files.pythonhosted.org/packages/9b/bb/67b71fd0f03acc9b5ed2b030c1934d56daf46b884699a24d170254a5fa25/vext.gi-0.7.0.tar.gz
Building wheels for collected packages: pycairo, PyYAML, vext, vext.gi
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hmdp8tt9/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpcz9n9ajfpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
  Running setup.py bdist_wheel for PyYAML ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hmdp8tt9/PyYAML/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpjgsjjhulpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for PyYAML
  Running setup.py clean for PyYAML
  Running setup.py bdist_wheel for vext ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hmdp8tt9/vext/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp0ahd24yhpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext
  Running setup.py clean for vext
  Running setup.py bdist_wheel for vext.gi ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hmdp8tt9/vext.gi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpu92q2jeepip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext.gi
  Running setup.py clean for vext.gi
Failed to build pycairo PyYAML vext vext.gi
Installing collected packages: pycairo, pygame, PyYAML, urllib3, requests, ruamel.base, ruamel.yaml, vext, vext.gi
  Running setup.py install for pycairo ... error
    Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hmdp8tt9/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-i5vlf2sc-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.5/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hmdp8tt9/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-i5vlf2sc-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo" failed with error code 1 in /tmp/pip-build-hmdp8tt9/pycairo/
You are using pip version 8.1.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

(coinprice-indicator) ~/coinprice-indicator$ vext -i gi.vext
No command 'vext' found, did you mean:
 Command 'next' from package 'nmh' (universe)
vext: command not found

(coinprice-indicator) ~/coinprice-indicator$ chmod u+x coin/coin.py

(coinprice-indicator) ~/coinprice-indicator$

Thanks! Could you start over, delete the folder and pull fresh from github and try running the install.sh again? I removed the 2nd line, must've accidentally stayed in there.

Thanks for help. Unfortunately, no success, again.

I've totally delete coinprice-indicator folder.
Make git clone https://github.com/nilgradisnik/coinprice-indicator.git
cd to folder then run ./install.sh
There is same errors in log.

~$ rm -rf coinprice-indicator

~$ git clone https://github.com/nilgradisnik/coinprice-indicator.git
Cloning into 'coinprice-indicator'...
remote: Counting objects: 1829, done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 1829 (delta 35), reused 58 (delta 26), pack-reused 1752
Receiving objects: 100% (1829/1829), 2.04 MiB | 497.00 KiB/s, done.
Resolving deltas: 100% (1203/1203), done.
Checking connectivity... done.

~$ cd coinprice-indicator

~/coinprice-indicator$ ./install.sh
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
Overwriting /home/user/coinprice-indicator/bin/activate with new content
Overwriting /home/user/coinprice-indicator/bin/activate.fish with new content
Overwriting /home/user/coinprice-indicator/bin/activate.csh with new content
Collecting certifi==2018.8.24 (from -r requirements.txt (line 1))
  Using cached https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl
Collecting chardet==3.0.4 (from -r requirements.txt (line 2))
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting dbus-python==1.2.8 (from -r requirements.txt (line 3))
  Using cached https://files.pythonhosted.org/packages/3f/e7/4edb582d1ffd5ac3c84188deea32e960b5c8c0fe1da56ce70224f85ce542/dbus-python-1.2.8.tar.gz
Collecting idna==2.7 (from -r requirements.txt (line 4))
  Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting notify2==0.3.1 (from -r requirements.txt (line 5))
  Using cached https://files.pythonhosted.org/packages/f9/69/99d2bc2d98a802b6f58d1e0a774a933b3fea5ef11455379561b71c04370b/notify2-0.3.1-py2.py3-none-any.whl
Collecting pycairo==1.17.1 (from -r requirements.txt (line 6))
  Using cached https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz
Collecting pygame==1.9.4 (from -r requirements.txt (line 7))
  Using cached https://files.pythonhosted.org/packages/ec/8c/acba4494370dd1f68af341a76084c4c1f10f1ca258a741ace4f526716935/pygame-1.9.4-cp35-cp35m-manylinux1_x86_64.whl
Collecting PyYAML==3.13 (from -r requirements.txt (line 8))
  Using cached https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz
Collecting requests==2.19.1 (from -r requirements.txt (line 9))
  Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting ruamel.base==1.0.0 (from -r requirements.txt (line 10))
  Using cached https://files.pythonhosted.org/packages/1f/e1/5257f5d1636a26fdb50cdcc0e7e5e65d230b88c2dd5090ac797b9e45d1d3/ruamel.base-1.0.0-py3-none-any.whl
Collecting ruamel.yaml==0.15.64 (from -r requirements.txt (line 11))
  Using cached https://files.pythonhosted.org/packages/88/d5/be4751ad2887ca66ba6ccda11615bf5d26ff1e347319ac78a15b71232bdd/ruamel.yaml-0.15.64-cp35-cp35m-manylinux1_x86_64.whl
Collecting urllib3==1.23 (from -r requirements.txt (line 12))
  Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting vext==0.7.0 (from -r requirements.txt (line 13))
  Using cached https://files.pythonhosted.org/packages/c1/f0/9fe7f5f6273f03c29e80f760f44cf451bd768c0ec2c1e2f8a5d255357058/vext-0.7.0.tar.gz
Collecting vext.gi==0.7.0 (from -r requirements.txt (line 14))
  Using cached https://files.pythonhosted.org/packages/9b/bb/67b71fd0f03acc9b5ed2b030c1934d56daf46b884699a24d170254a5fa25/vext.gi-0.7.0.tar.gz
Building wheels for collected packages: dbus-python, pycairo, PyYAML, vext, vext.gi
  Running setup.py bdist_wheel for dbus-python ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/dbus-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp9fmiza7vpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for dbus-python
  Running setup.py clean for dbus-python
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp9bs3hngtpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
  Running setup.py bdist_wheel for PyYAML ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/PyYAML/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpxk5frhbhpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for PyYAML
  Running setup.py clean for PyYAML
  Running setup.py bdist_wheel for vext ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/vext/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpneohgqbtpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext
  Running setup.py clean for vext
  Running setup.py bdist_wheel for vext.gi ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/vext.gi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpvbxix5dxpip-wheel- --python-tag cp35:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for vext.gi
  Running setup.py clean for vext.gi
Failed to build dbus-python pycairo PyYAML vext vext.gi
Installing collected packages: certifi, chardet, dbus-python, idna, notify2, pycairo, pygame, PyYAML, urllib3, requests, ruamel.base, ruamel.yaml, vext, vext.gi
  Running setup.py install for dbus-python ... done
  Running setup.py install for pycairo ... error
    Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-qddhiqkv-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.5/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pem0a8o9/pycairo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-qddhiqkv-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo" failed with error code 1 in /tmp/pip-build-pem0a8o9/pycairo/
You are using pip version 8.1.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
./install.sh: line 6: vext: command not found

~/coinprice-indicator$

There is some new errors in log. But no success, again.
Im on Ubuntu 16.04.5.
~$ rm -rf coinprice-indicator

~$ git clone https://github.com/nilgradisnik/coinprice-indicator.git
Cloning into 'coinprice-indicator'...
remote: Counting objects: 1829, done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 1829 (delta 35), reused 58 (delta 26), pack-reused 1752
Receiving objects: 100% (1829/1829), 2.04 MiB | 1.24 MiB/s, done.
Resolving deltas: 100% (1203/1203), done.
Checking connectivity... done.

~$ cd coinprice-indicator

~/coinprice-indicator$ cat install.sh
#!/bin/bash
virtualenv --python=/usr/bin/python3 ./
virtualenv ./
source ./bin/activate
pip3 install -r requirements.txt
vext -i gi.vext
chmod u+x coin/coin.py

~/coinprice-indicator$ ./install.sh
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/user/coinprice-indicator/bin/python3
Also creating executable in /home/user/coinprice-indicator/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/user/coinprice-indicator/bin/python2
Not overwriting existing python script /home/user/coinprice-indicator/bin/python (you must use /home/user/coinprice-indicator/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
Collecting certifi==2018.8.24 (from -r requirements.txt (line 1))
  Using cached https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl
Collecting chardet==3.0.4 (from -r requirements.txt (line 2))
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting dbus-python==1.2.8 (from -r requirements.txt (line 3))
  Using cached https://files.pythonhosted.org/packages/3f/e7/4edb582d1ffd5ac3c84188deea32e960b5c8c0fe1da56ce70224f85ce542/dbus-python-1.2.8.tar.gz
Collecting idna==2.7 (from -r requirements.txt (line 4))
  Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting notify2==0.3.1 (from -r requirements.txt (line 5))
  Using cached https://files.pythonhosted.org/packages/f9/69/99d2bc2d98a802b6f58d1e0a774a933b3fea5ef11455379561b71c04370b/notify2-0.3.1-py2.py3-none-any.whl
Collecting pycairo==1.17.1 (from -r requirements.txt (line 6))
  Using cached https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz
Collecting pygame==1.9.4 (from -r requirements.txt (line 7))
  Using cached https://files.pythonhosted.org/packages/ec/8c/acba4494370dd1f68af341a76084c4c1f10f1ca258a741ace4f526716935/pygame-1.9.4-cp35-cp35m-manylinux1_x86_64.whl
Collecting PyYAML==3.13 (from -r requirements.txt (line 8))
  Using cached https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz
Collecting requests==2.19.1 (from -r requirements.txt (line 9))
  Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Collecting ruamel.base==1.0.0 (from -r requirements.txt (line 10))
  Using cached https://files.pythonhosted.org/packages/1f/e1/5257f5d1636a26fdb50cdcc0e7e5e65d230b88c2dd5090ac797b9e45d1d3/ruamel.base-1.0.0-py3-none-any.whl
Collecting ruamel.yaml==0.15.64 (from -r requirements.txt (line 11))
  Using cached https://files.pythonhosted.org/packages/88/d5/be4751ad2887ca66ba6ccda11615bf5d26ff1e347319ac78a15b71232bdd/ruamel.yaml-0.15.64-cp35-cp35m-manylinux1_x86_64.whl
Collecting urllib3==1.23 (from -r requirements.txt (line 12))
  Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Collecting vext==0.7.0 (from -r requirements.txt (line 13))
  Using cached https://files.pythonhosted.org/packages/c1/f0/9fe7f5f6273f03c29e80f760f44cf451bd768c0ec2c1e2f8a5d255357058/vext-0.7.0.tar.gz
Collecting vext.gi==0.7.0 (from -r requirements.txt (line 14))
  Using cached https://files.pythonhosted.org/packages/9b/bb/67b71fd0f03acc9b5ed2b030c1934d56daf46b884699a24d170254a5fa25/vext.gi-0.7.0.tar.gz
Building wheels for collected packages: dbus-python, pycairo, PyYAML, vext, vext.gi
  Running setup.py bdist_wheel for dbus-python ... done
  Stored in directory: /home/user/.cache/pip/wheels/77/5f/68/8feca31b06e015a95fc463f93bcbf1228f6937f34f354ca60c
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-cmn7df14/pycairo/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 /tmp/pip-wheel-zb67dosy --python-tag cp35:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.5
  creating build/lib.linux-x86_64-3.5/cairo
  copying cairo/__init__.py -> build/lib.linux-x86_64-3.5/cairo
  copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.5/cairo
  copying cairo/py.typed -> build/lib.linux-x86_64-3.5/cairo
  running build_ext
  Package cairo was not found in the pkg-config search path.
  Perhaps you should add the directory containing `cairo.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'cairo' found
  Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
  Running setup.py bdist_wheel for PyYAML ... done
  Stored in directory: /home/user/.cache/pip/wheels/ad/da/0c/74eb680767247273e2cf2723482cb9c924fe70af57c334513f
  Running setup.py bdist_wheel for vext ... done
  Stored in directory: /home/user/.cache/pip/wheels/54/83/93/0b1411b238c846b7cad7d293a455c6e398437fcc717c467f7f
  Running setup.py bdist_wheel for vext.gi ... error
  Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-cmn7df14/vext.gi/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 /tmp/pip-wheel-b55xu5bc --python-tag cp35:
  running bdist_wheel
  running build
  installing to build/bdist.linux-x86_64/wheel
  running install
  vext.gi Install
  running install_data
  creating build
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/vext.gi-0.7.0.data
  creating build/bdist.linux-x86_64/wheel/vext.gi-0.7.0.data/data
  copying gi.vext -> build/bdist.linux-x86_64/wheel/vext.gi-0.7.0.data/data/
  running install_egg_info
  running egg_info
  writing dependency_links to vext.gi.egg-info/dependency_links.txt
  writing requirements to vext.gi.egg-info/requires.txt
  writing vext.gi.egg-info/PKG-INFO
  writing top-level names to vext.gi.egg-info/top_level.txt
  reading manifest file 'vext.gi.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file 'vext.gi.egg-info/SOURCES.txt'
  Copying vext.gi.egg-info to build/bdist.linux-x86_64/wheel/vext.gi-0.7.0-py3.5.egg-info
  running install_scripts
  Install vext files:
  error: [Errno 2] No such file or directory: 'vext'

  ----------------------------------------
  Failed building wheel for vext.gi
  Running setup.py clean for vext.gi
Successfully built dbus-python PyYAML vext
Failed to build pycairo vext.gi
Installing collected packages: certifi, chardet, dbus-python, idna, notify2, pycairo, pygame, PyYAML, urllib3, requests, ruamel.base, ruamel.yaml, vext, vext.gi
  Running setup.py install for pycairo ... error
    Complete output from command /home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-cmn7df14/pycairo/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-0u1mtnzt/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.5/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.5/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/user/coinprice-indicator/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-cmn7df14/pycairo/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-0u1mtnzt/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/coinprice-indicator/include/site/python3.5/pycairo" failed with error code 1 in /tmp/pip-install-cmn7df14/pycairo/
./install.sh: line 6: vext: command not found

~/coinprice-indicator$ ./run.sh

~/coinprice-indicator$ Traceback (most recent call last):
  File "coin/coin.py", line 9, in <module>
    import yaml
ImportError: No module named 'yaml'

Hmm I was trying it out on my headless Ubuntu server and got similar issues. Looks like missing dependencies.
try
sudo apt install libdbus-glib-1-2 gir1.2-gtk-3.0 gir1.2-appindicator3-0.1
and then install and run again.

Well this packages already installed in my system.
$ sudo apt install libdbus-glib-1-2 gir1.2-gtk-3.0 gir1.2-appindicator3-0.1
Reading package lists... Done
Building dependency tree
Reading state information... Done
libdbus-glib-1-2 is already the newest version (0.106-1).
libdbus-glib-1-2 set to manually installed.
gir1.2-appindicator3-0.1 is already the newest version (12.10.1+16.04.20170215-0ubuntu1).
gir1.2-gtk-3.0 is already the newest version (3.18.9-1ubuntu3.4colin2).
gir1.2-gtk-3.0 set to manually installed.
The following package was automatically installed and is no longer required:
  python-psutil
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded

ok now create the virtual environment with system packages as done in the new commit in the install file

I'm experiencing this same issue - same setup as OP

I found another dependency that helped me resolve these issues
sudo apt-get install libcairo2-dev

I can confirm this solution. After I've installed package libcairo2-dev indicator was successfully launched without any errors.
(In this time installation script showed just 1 error — "Failed building wheel for vext.gi".)

I also saw the same error yet the indicator was launched without issue.
Pull request added
I will submit a pull request with libcairo2-dev as a requirement

Thanks for this. I was hoping that all dependencies could be included in the virtual environment (so that you could run the software without superuser privileges), but clearly that is not the case. Oh well, I'll go back to including those packages in the install script.

i get all the same errors described by vkapas, but installing libcairo2-dev does not fix it for me.


Add the mandatory mark + validation in adopt screen

Is your feature request related to a problem? Please describe.
The user is not able to check which fields are mandatory to be entered and phone number validation is also not given user is able to enter any number in any length
Describe the solution you'd like
The user will be able to see the mandatory fields with red mark and then I'll add the phone number validation
Screenshot
Below is the marked area where I'm mentioning the changes to be done.

Please review and assign this issue to me and add hacktoberfest tag

assign me the issue I'll fix it

its not needed currently in this form


Get working and run Duncan's benchmark

beans version: 1.0
Python version: 3.8
Operating System: Ubuntu 20.04 LTS

Description

add Duncans Jupyter notebook to repo, incl the test data file table1.mrt
get it working with current ver of beans/settle
add ellapsed time measurement

Test result = 20 x process data file table1.mrt, which has 60 lines to solve with settle
Cycle # 0  time =  1.0859557230000405
Cycle # 1  time =  1.1577557979999824
Cycle # 2  time =  1.0331596110000305
Cycle # 3  time =  1.0980430100000262
Cycle # 4  time =  1.0633876910000026
Cycle # 5  time =  1.083188716000052
Cycle # 6  time =  1.022214765000001
Cycle # 7  time =  1.0456627119999666
Cycle # 8  time =  1.0444267509999463
Cycle # 9  time =  1.0586430849999715
Cycle # 10  time =  1.0277684799999633
Cycle # 11  time =  1.0773964730000216
Cycle # 12  time =  1.0260536099999626
Cycle # 13  time =  1.0722670440000002
Cycle # 14  time =  1.0709616890000007
Cycle # 15  time =  1.1106033569999454
Cycle # 16  time =  1.0623965119999639
Cycle # 17  time =  1.0466508040000235
Cycle # 18  time =  1.055228032000059
Cycle # 19  time =  1.0195906459999833
total process time ( 20 loops) =  21.263548350000065
settle sum time ( 20 loops) =  21.232073904000515
loop sum time ( 20 loops) =  21.261354508999943
average 60 row data table one loop run settle sum time =  1.0616036952000258

done, now need to compare with what performance is expected :-)


MSAL.AuthenticationParameters prompt property should be typed

Currently the 'prompt' parameter has type string | undefined.
However it seems that only following values are allowed:
login
select_account
consent
none
https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-prompt-behavior
Do you accept PRs in this repository?
msaljs v1.1.3

@jannikbuschke This is intentional from the library as the support for prompt parameter and it's possible values is based on the STS code and not the library. What exactly is the functionality you are looking for by adding a new value to prompt?

I want to restrict the prompt values to login, select_account, consent, none so that typescript throws early (in case of spelling error) and to get IDE/intellisense support so that I don't need to always lookup the correct values in the documentation.
I.e. something like
type Prompt = "login" | "select_account" | "consent" | "none" | undefined
Currently the type of this property is string | undefined, which seems to be wrong. Not all string values are valid...

@jannikbuschke  its already present
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/utils/Constants.ts
Use PromptState Enum from above file
export const PromptState = {
LOGIN: "login",
SELECT_ACCOUNT: "select_account",
CONSENT: "consent",
NONE: "none",
};

But why is the prompt property on AuthenticationParameters a string and not typed to the concrete string values?
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/AuthenticationParameters.ts#L16

how can we allow user to select account and ask for consent together? It seems strange not able to select_account and consent in one shot.

Thanks @keystroke. Yes, eg: we had prompt=auto supported before a while in older libraries. The decisive authority here is the service team and they would like to keep this expandable.
@isaacList I am not sure if UI supports that. @jmprieur Any help here. The question is: "Can we allow user to select account and ask for consent together? It seems strange not able to select_account and consent in one shot."

@isaacList The behavior here is determined 100% by the AAD backend. All MSAL gets to do is construct the URI to send the user, like below two examples which you can click:

https://login.microsoftonline.com/common/oauth2/authorize?client_id=a963b646-fa01-4c06-b302-42c6ed1b2774&redirect_uri=https%3A%2F%2Flocalhost%3A3000&response_type=code+id_token&scope=openid+profile&nonce=foo&prompt=consent

https://login.microsoftonline.com/common/oauth2/authorize?client_id=a963b646-fa01-4c06-b302-42c6ed1b2774&redirect_uri=https%3A%2F%2Flocalhost%3A3000&response_type=code+id_token&scope=openid+profile&nonce=foo&prompt=select_account

Above, we have to pick a single value for the prompt parameter. If you try to include more than one value, you get an error: "AADSTS9000411: The request is not properly formatted. The parameter 'prompt' is duplicated."
However, you will find that AAD page will induce a select_account experience (or login experience) during a consent flow on that page if the user has multiple active sessions for different accounts which are valid (e.g. depending on what your authority value is).
You can lookup more details about this API flow in general, there is another query parameter for login_hint which can be used, like this (replace details of username at the end to be your account name):
https://login.microsoftonline.com/common/oauth2/authorize?client_id=a963b646-fa01-4c06-b302-42c6ed1b2774&redirect_uri=https%3A%2F%2Flocalhost%3A3000&response_type=code+id_token&scope=openid+profile&nonce=foo&prompt=consent&login_hint=user%whatever.com
Above flow is supported by MSAL, and you can achieve this kind of thing using below code snippet:
for (let account of msal.getAllAccounts()) {
    console.log('starting consent for account: ', account);
    try {
        await msal.acquireTokenPopup({ account, scopes: ['openid'], prompt: 'consent' })
    }
    catch (error) {
        console.log('error during popup consent for account: ', account, error)
    }
}

Above, we pass a specific account to use with the consent prompt, and this will cause MSAL to set the login_hint to that target account. Note that this may force the user to re-enter their password in some cases.

This is exactly how it works @keystroke, Thanks for the explanation. Since the thread deviated from the original issue, and we have answers for all the points discussed, I am closing this issue. Please open a new issue for any remaining concerns @isaacList.


proposal: dev.boringcrypto: use boringcrypto for HKDF in x/crypto/hkdf

Hi, would it be possible to have the vendored x/crypto/hkdf use boringcrypto in the dev.boringcrypto branch?
Assuming I understand this correctly, key_schedule.go currently uses the vendored x/crypto/hkdf which uses boringcrypto for hmac and hash but not the rest. It's a little silly, but if the HKDF used boringcrypto's HKDF instead, it would make a TLS 1.3 FIPS validation easier.
https://github.com/golang/go/blob/dev.boringcrypto.go1.16/src/crypto/tls/key_schedule.go
https://github.com/golang/go/blob/dev.boringcrypto.go1.16/src/vendor/golang.org/x/crypto/hkdf/hkdf.go
Thanks for your time!
What version of Go are you using (go version)?

$ go version
go version go1.15.13 linux/amd64

Does this issue reproduce with the latest release?
yes, the code seems to be the same in go1.16

cc @FiloSottile

noticed that this is now a thing as a byproduct of the golang 1.19.4-1-openssl-fips release, thanks!

This proposal has been declined as retracted.
— rsc for the proposal review group


⚠ Bofrost.be has degraded performance

In 3124ead, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1113 ms

Resolved: Bofrost.be performance has improved in ec9fa73.


[stable/prometheus] Fix rollingUpdate: null indentation Recreate

What this PR does / why we need it:
Fixes indentation from capability introduced in https://github.com/helm/charts/pull/21289
Special notes for your reviewer:
None
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/assign @gianrubio

/assign
/ok-to-test

/lgtm

@swarkentin I think this change broke the chart for Helm 3:
$ helm3 template prometheus stable/prometheus --version 11.1.0 --set server.strategy.type=Recreate
    <snip> (it works)
$ helm3 template prometheus stable/prometheus --version 11.1.1 --set server.strategy.type=Recreate
Error: YAML parse error on prometheus/templates/server-deployment.yaml: error converting YAML to JSON: yaml: line 19: mapping values are not allowed in this context

Helm 2 appears to work:
$ helm fetch stable/prometheus --version 11.1.0
$ helm template prometheus-11.1.0.tgz --set server.strategy.type=Recreate
    <snip> (it works)
$ helm fetch stable/prometheus --version 11.1.1
$ helm template prometheus-11.1.1.tgz --set server.strategy.type=Recreate
    <snip> (it works)

@patricklucas yes you are right! Looks like the template is treated differently between helm 2 and helm 3. This may be due to https://github.com/helm/helm/issues/3470
I have added a PR to resolve this https://github.com/helm/charts/pull/21989
Thank you!

Great, thanks for the quick response!


Support extended flags for open_ex

[x] I agree to follow the project's code of conduct.
[x] I added an entry to CHANGES.md if knowledge of this change could be valuable to users.

This is attempt to fix #154
This is an api breaking change
This PR allow using GDAL_OF_XXX extended flags.
Implement a DatasetOptions to pass to Dataset::open_ex
    use gdal::{ Dataset, DatasetOptions }

    let dataset = Dataset::open_ex(
        "roads.geojson",
        DatasetOptions {
            open_flags: GdalOpenFlags::GDAL_OF_UPDATE|GdalOpenFlags::GDAL_OF_VECTOR,
            ..DatasetOptions::default()
       }
    )
     .unwrap();

`GDALAccess` values are supported using [`From`] implementation

    Dataset::open_ex(
        "roads.geojson",
        DatasetOptions {
            open_flags: GDALAccess::GA_Update.into(),
            ..DatasetOptions::default()
        },
    )
    .unwrap();

Note that following this note GDAL_OF_SHARED option is removed from the set of allowed option because it subverts the [Send] implementation that allow passing the dataset the another thread.

Remove the GDAL_OF_SHARED option and added a note.

Remove the GDAL_OF_SHARED option and added a note.


Set parameters' explode property to false

Fixes https://github.com/microsoft/OpenAPI.NET.OData/issues/107
Fixes microsoftgraph/microsoft-graph-devx-api#618
This PR:

Explicitly sets the Explode properties to false for $orderby, $select and $expand OData query parameters, for style: form.
Adds tests to validate the creation of the above query parameters, and in extension, validate that explode: false is always set.

looks good to me. :shipit:


How to have the Mini R2 report a physical SPDT switch state change

I just implemented a polling strategy to keep my app's button state synced to the actual power state of the switch, but I don't like the polling strategy as a solution. It's too busy.
I would like to know if there's a way to make the mini R2 report state changes so that the power state of the switch in my home app accurately reflects the power state of the actual circuit.
Specifically, I would like to be able to set a webhook URL value in the R2 that it calls when the power state changes.
Ideally, you could specify whether the state change came from the SPDT switch or via webhook call.
Is this already possible and I just overlooked how to do it in the doc?

I went through the ...Doc v2.pdf and have fond nothing about it

For the Nodejs you can use this tool: https://www.npmjs.com/package/multicast-dns

Hmmm, I don't have a push-button.  I have an SPDT switch, as mentioned in the user manual.
The eWeLink app reports the state of that switch, because when I flip it, the state of the virtual button in the eWeLink app changes.  I would just like to report that state update using DIY mode.
I already implemented a polling strategy to retrieve that state, but polling is a busy implementation - a lot of wasted cycles.  It would be much more efficient if I could make the Mini R2 send state change events when they happen.  That is what I'm inquiring about here.  Is this possible with DIY mode or would I need to flash with tasmota to obtain that functionality?

For example, if there was a webhook URL option in DIY mode that I could set that the Mini R2 could use to report state changes, that would be ideal.


Application.Begin should set toplevel's size to the console size

		[Fact, AutoInitShutdown]
		public void Begin_Sets_Application_Top_To_Console_Size()
		{
			Assert.Equal (new Rect (0, 0, 80, 25), Application.Top.Frame);

			((FakeDriver)Application.Driver).SetBufferSize (5, 5);
			Application.Begin (Application.Top);
			// BUGBUG: v2 - This test should pass; it does not currently
			Assert.Equal (new Rect (0, 0, 5, 5), Application.Top.Frame);
		}

@tig the reason is the Application.Top only is added to the tolevels collection on the Begin method and not in the Init method. So the TerminalResized method isn't processed because the tolevels collection is empty.

@tig the reason is the Application.Top only is added to the tolevels collection on the Begin method and not in the Init method. So the TerminalResized method isn't processed because the tolevels collection is empty.

What do you think the right fix is?

What do you think the right fix is?

Don't fix. Just use the ((FakeDriver)Application.Driver).SetBufferSize (5, 5); after the Begin is called.

I spent 30 minutes debugging a test because of this. I think the current behavior is incorrect. The unit test above shows how I think it should work.
Can you explain why you disagree?
Note, here's a potential fix:
public static RunState Begin (Toplevel toplevel)
{
	if (toplevel == null) {
		throw new ArgumentNullException (nameof (toplevel));
	} else if (toplevel.IsMdiContainer && MdiTop != toplevel && MdiTop != null) {
		throw new InvalidOperationException ("Only one Mdi Container is allowed.");
	}

	var rs = new RunState (toplevel);

	// View implements ISupportInitializeNotification which is derived from ISupportInitialize
	if (!toplevel.IsInitialized) {
                toplevel.Frame = new Rect (0, 0, Driver.Cols, Driver.Rows);
		toplevel.BeginInit ();
		toplevel.EndInit ();
	}
...

@tig but you are trying to fix the Begin method but in the test you are calling the ((FakeDriver)Application.Driver).SetBufferSize (5, 5); before the Application.Begin. So, I don't understand what you are doing :-)

@tig but you are trying to fix the Begin method but in the test you are calling the ((FakeDriver)Application.Driver).SetBufferSize (5, 5); before the Application.Begin. So, I don't understand what you are doing :-)

SetBufferSize () changes Driver.Cols and Driver.Rows.
Thus my fix (toplevel.Frame = new Rect (0, 0, Driver.Cols, Driver.Rows); makes this code work:
		[Fact, AutoInitShutdown]
		public void Begin_Sets_Application_Top_To_Console_Size()
		{
                        // FakeDriver's default size is 80x25
			Assert.Equal (new Rect (0, 0, 80, 25), Application.Top.Frame);

                        // I want a much smaller size for my tests
			((FakeDriver)Application.Driver).SetBufferSize (5, 5);

                        // Start the app
			Application.Begin (Application.Top);

			// BUGBUG: v2 - This test should pass; it does not currently
			Assert.Equal (new Rect (0, 0, 5, 5), Application.Top.Frame);
		}

Make sense?

Sorry I didn't look in this. Yes make sense and is a great fix. Thanks.
	// View implements ISupportInitializeNotification which is derived from ISupportInitialize
	if (!toplevel.IsInitialized) {
                toplevel.Frame = new Rect (0, 0, Driver.Cols, Driver.Rows);
		toplevel.BeginInit ();
		toplevel.EndInit ();
	}

This was fixed.


fix react 15 cannot use only array as return element bug

Further fix #79 bug.

totally support react v15

Codecov Report

Merging #84 into master will increase coverage by 0.75%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #84      +/-   ##
==========================================
+ Coverage   83.21%   83.97%   +0.75%
==========================================
  Files          19       19
  Lines         286      287       +1
  Branches       51       51
==========================================
+ Hits          238      241       +3
+ Misses         39       37       -2
  Partials        9        9

Impacted Files
Coverage Δ

src/PanelList.js
100% <100%> (+25%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 174c5e2...74283f6. Read the comment docs.


PiP extension doesn't work on FreeBSD

Hi,
It seems that the extension does not work on FreeBSD. Chromium 72.0.3626.119 stops working and crashes with any YouTube video.
Would it be possible to support FreeBSD?
Thanks

Thanks @cpu82 for your feedback!
Do you mind creating a bug at crbug.com/new and provide javascript errors you may notice in the developer console if possible?

Picture in picture mode for video works after updating chromium to 73.0.3683.103.

Glad to hear this!


Fix readme typo

Issue #88

Changes

Fix readme typo

Related Issues

Issue #
Pull Request #

Fixed typos in the Readme file. @irmerk mam plz review can we have labels here as of Hackoberfest.


Documentation for event subscribers

My event subscriber used to respond with a HTTP status code of 400 when it didn't know about the appId it was being told about in the event message. It appears that since the change a7a0b474bb (may be other places) my event subscriber cannot respond with non 200 because it will be marked as 'unresponsive'.
Is there documentation for how an event subscriber should respond and with what? If not, can we get some written? If this is not the desired behavior, can we get it remedied? I feel like an 'unresponsive' host should be one that a successful connection cannot be made to, not one that responds non 200, but I could be persuaded otherwise.
Thank you in advance.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-4089. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-4089. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


fixed memory leak caused by PQprepare

Documentations says: "As with PQexec, the result is normally a PGresult object whose contents indicate server-side success or failure."
This PGresult objects needs to be cleared with PQclear. "Every command result should be freed via PQclear when it is no longer needed."

I think there is another memory leak when result != nil AND PQresultStatus(result) != PGRES_COMMAND_OK, I would fixed it but I don't know anything about your coding conventions and result isn't accessible inside the guard statement

Codecov Report

Merging #40 into master will decrease coverage by 0.04%.
The diff coverage is 60%.

@@            Coverage Diff             @@
##           master      #40      +/-   ##
==========================================
- Coverage   73.42%   73.37%   -0.05%
==========================================
  Files           3        3
  Lines         444      447       +3
==========================================
+ Hits          326      328       +2
- Misses        118      119       +1

Flag
Coverage Δ

#SwiftKueryPostgreSQL
73.37% <60%> (-0.05%)
:arrow_down:

Impacted Files
Coverage Δ

...es/SwiftKueryPostgreSQL/PostgreSQLConnection.swift
60.58% <60%> (+0.07%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 79ff943...47200d0. Read the comment docs.

@tunniclm Should we have a look at this?

@EnriqueL8 Missed this notification, sorry! Yes, I think this looks important and we should investigate and merge if it looks good.

LGTM, @ianpartridge what do you think?

LGTM, merge when you're ready.  @EnriqueL8 can you also audit the rest of the codebase for missing calls to PQclear()?

Could do

I believe the three cases (Query, PreparedStatement and Transaction) are now covered:

Query uses a helper function to clear the result
Transaction calls PQClear directly
PrepareStatement is this PR which mimics the Transaction case

Cool, thanks. I think this should be tagged as 1.1.1 after merge, can you do this?

okay, merging


Add fixed-cidr-v6 field

Proposed changes
Since dockerd does not start without a ipv6 subnet if ipv6 is enabled it is convenient to add this field to the docs.

Unreleased project version (optional)

Related issues (optional)

Deploy preview for modest-edison-79d82e ready!
Built with commit efd2f5c3979f03e3996d7d772ef0d46ce61a2e89
https://deploy-preview-7208--modest-edison-79d82e.netlify.com

@mark-church PTAL. Thanks.

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


sui-framework: add a way to calculate the total rewards collected for delegations

In the stake-home view of the wallet we need to show the total rewards collected for an address (see more here). Currently it seems there isn't an easy way to calculate it.
One way we could do it is to add a field eg rewards_collected and in the wallet sum it for all delegations owned from the active address. (This probably wont be accurate if we burn the delegation)

@pchrysochoidis is this still a valid thing we want to have? If not, we should close this issue.


Should be able to create Custom user with no permissions selected (base user)

Rancher versions: 2.0 master 3/7
Steps to Reproduce:

Add User
Enter information and select Custom
Do not select any of the permissions and click Create

Results:  Error pops up saying New users are required to have a role.  Users should not be required to have a role and should be a base user.

Version - 2.0 master 3/8
Verified fixed


[refactor] #3501: Rewrite macros for generating configuration

Description

Linked issue

Closes #3501 #3504

Benefits

Checklist

[x] I refactored the config
[ ] I am addressing comments (25/50)
[ ] Final re-review

Also it might close:

#3461

Fixing #3461 was a trivial one-line change. I would instead focus on getting good defaults.

Not actual.


getImageData CreateJS Lib - Canvas based apps…

Hi,
We run a couple of sites that our users have been complaining that the canvas based apps are not functioning correctly, when we've looked into it - it appears that the duckduckgo privacy extension is causing issues when a canvas element uses getImageData.
The extension is not showing any errors in the console, but we have confirmed the extension is causing the issue by simply enabling/disabling it.
We use the CreateJS libraries for our apps - and it is the library itself that is using getImageData on the initialization of the canvas, so this means any site using the library will be affected by the duckduckgo extension issue.
Steps to Reproduce

Enable DuckDuckGo Privacy Extension.
Visit: https://www.online-stopwatch.com/duck-race/full-screen/
Click "SET" to load the race.
Click "START". The race will not work or load correctly.

Expected behavior:

Disable DuckDuckGo Privacy Extension.
Visit: https://www.online-stopwatch.com/duck-race/full-screen/
Click "SET" to load the race.
Click "START" to start the race. The race will run.

Versions
Latest chrome version installed today.
Additional Information
A lot of schools (our main users) have the DuckDuckGo extension installed, so this is now affecting a lot of ours.
Would it be possible to add our sites: https://www.online-stopwatch.com/  and https://www.online-calculator.com/ to your whitelist/allow lists until the bug is resolved?
Thank you for your help!

Hey @albowler thanks for the detailed report! Sorry about the trouble, it looks like our anti canvas fingerprinting feature is the culprit. I'll get a mitigation out for this shortly.

Hi @albowler, we've now shipped a mitigation for this issue and its had a chance to roll out to all users, so the issue should be entirely resolved. Thanks again for the report!