├── LICENSE
├── README.md
├── Section 1
├── .ipynb_checkpoints
│ ├── Video 4-checkpoint.ipynb
│ ├── Video 5-checkpoint.ipynb
│ └── Video 6-checkpoint.ipynb
├── Video 1.1
│ └── hello.py
├── Video 1.4
│ └── Video 1.4.ipynb
├── Video 1.5
│ └── Video 1.5.ipynb
└── Video 1.6
│ └── Video 1.6.ipynb
├── Section 2
├── .ipynb_checkpoints
│ ├── Video 2.3-checkpoint.ipynb
│ ├── Video 2.4-checkpoint.ipynb
│ └── Video 2.5-checkpoint.ipynb
├── Video 2.3
│ └── Video 2.3.ipynb
├── Video 2.4
│ └── Video 2.4.ipynb
└── Video 2.5
│ └── Video 2.5.ipynb
├── Section 3
├── .idea
│ ├── .name
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── .ipynb_checkpoints
│ ├── Video 3.2-checkpoint.ipynb
│ └── Video 3.4-checkpoint.ipynb
├── Video 3.2
│ ├── .ipynb_checkpoints
│ │ └── Video 3.2-checkpoint.ipynb
│ └── Video 3.2.ipynb
└── Video 3.4
│ ├── .ipynb_checkpoints
│ └── Video 3.4-checkpoint.ipynb
│ ├── Recommender.py
│ └── Video 3.4.ipynb
├── Section 4
└── Video 4.4
│ ├── .idea
│ ├── .name
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
│ ├── .ipynb_checkpoints
│ └── Video 4.4-checkpoint.ipynb
│ └── Video 4.4.ipynb
├── Section 5
├── Video 5.2
│ ├── .idea
│ │ ├── Video 5.2.iml
│ │ ├── misc.xml
│ │ ├── modules.xml
│ │ └── workspace.xml
│ ├── __pycache__
│ │ └── app.cpython-36.pyc
│ ├── app.py
│ └── venv
│ │ ├── bin
│ │ ├── activate
│ │ ├── activate.csh
│ │ ├── activate.fish
│ │ ├── easy_install
│ │ ├── easy_install-3.6
│ │ ├── flask
│ │ ├── pip
│ │ ├── pip3
│ │ ├── pip3.6
│ │ ├── python
│ │ ├── python3
│ │ └── python3.6
│ │ ├── lib
│ │ └── python3.6
│ │ │ └── site-packages
│ │ │ ├── Click-7.0.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── WHEEL
│ │ │ └── top_level.txt
│ │ │ ├── Flask-1.0.3.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── WHEEL
│ │ │ ├── entry_points.txt
│ │ │ └── top_level.txt
│ │ │ ├── Jinja2-2.10.1.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── WHEEL
│ │ │ ├── entry_points.txt
│ │ │ └── top_level.txt
│ │ │ ├── MarkupSafe-1.1.1.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── WHEEL
│ │ │ └── top_level.txt
│ │ │ ├── Werkzeug-0.15.4.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.rst
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── WHEEL
│ │ │ └── top_level.txt
│ │ │ ├── click
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── _bashcomplete.cpython-36.pyc
│ │ │ │ ├── _compat.cpython-36.pyc
│ │ │ │ ├── _termui_impl.cpython-36.pyc
│ │ │ │ ├── _textwrap.cpython-36.pyc
│ │ │ │ ├── _unicodefun.cpython-36.pyc
│ │ │ │ ├── _winconsole.cpython-36.pyc
│ │ │ │ ├── core.cpython-36.pyc
│ │ │ │ ├── decorators.cpython-36.pyc
│ │ │ │ ├── exceptions.cpython-36.pyc
│ │ │ │ ├── formatting.cpython-36.pyc
│ │ │ │ ├── globals.cpython-36.pyc
│ │ │ │ ├── parser.cpython-36.pyc
│ │ │ │ ├── termui.cpython-36.pyc
│ │ │ │ ├── testing.cpython-36.pyc
│ │ │ │ ├── types.cpython-36.pyc
│ │ │ │ └── utils.cpython-36.pyc
│ │ │ ├── _bashcomplete.py
│ │ │ ├── _compat.py
│ │ │ ├── _termui_impl.py
│ │ │ ├── _textwrap.py
│ │ │ ├── _unicodefun.py
│ │ │ ├── _winconsole.py
│ │ │ ├── core.py
│ │ │ ├── decorators.py
│ │ │ ├── exceptions.py
│ │ │ ├── formatting.py
│ │ │ ├── globals.py
│ │ │ ├── parser.py
│ │ │ ├── termui.py
│ │ │ ├── testing.py
│ │ │ ├── types.py
│ │ │ └── utils.py
│ │ │ ├── easy-install.pth
│ │ │ ├── flask
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── __main__.cpython-36.pyc
│ │ │ │ ├── _compat.cpython-36.pyc
│ │ │ │ ├── app.cpython-36.pyc
│ │ │ │ ├── blueprints.cpython-36.pyc
│ │ │ │ ├── cli.cpython-36.pyc
│ │ │ │ ├── config.cpython-36.pyc
│ │ │ │ ├── ctx.cpython-36.pyc
│ │ │ │ ├── debughelpers.cpython-36.pyc
│ │ │ │ ├── globals.cpython-36.pyc
│ │ │ │ ├── helpers.cpython-36.pyc
│ │ │ │ ├── logging.cpython-36.pyc
│ │ │ │ ├── sessions.cpython-36.pyc
│ │ │ │ ├── signals.cpython-36.pyc
│ │ │ │ ├── templating.cpython-36.pyc
│ │ │ │ ├── testing.cpython-36.pyc
│ │ │ │ ├── views.cpython-36.pyc
│ │ │ │ └── wrappers.cpython-36.pyc
│ │ │ ├── _compat.py
│ │ │ ├── app.py
│ │ │ ├── blueprints.py
│ │ │ ├── cli.py
│ │ │ ├── config.py
│ │ │ ├── ctx.py
│ │ │ ├── debughelpers.py
│ │ │ ├── globals.py
│ │ │ ├── helpers.py
│ │ │ ├── json
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ │ └── tag.cpython-36.pyc
│ │ │ │ └── tag.py
│ │ │ ├── logging.py
│ │ │ ├── sessions.py
│ │ │ ├── signals.py
│ │ │ ├── templating.py
│ │ │ ├── testing.py
│ │ │ ├── views.py
│ │ │ └── wrappers.py
│ │ │ ├── itsdangerous-1.1.0.dist-info
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.rst
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── WHEEL
│ │ │ └── top_level.txt
│ │ │ ├── itsdangerous
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── _compat.cpython-36.pyc
│ │ │ │ ├── _json.cpython-36.pyc
│ │ │ │ ├── encoding.cpython-36.pyc
│ │ │ │ ├── exc.cpython-36.pyc
│ │ │ │ ├── jws.cpython-36.pyc
│ │ │ │ ├── serializer.cpython-36.pyc
│ │ │ │ ├── signer.cpython-36.pyc
│ │ │ │ ├── timed.cpython-36.pyc
│ │ │ │ └── url_safe.cpython-36.pyc
│ │ │ ├── _compat.py
│ │ │ ├── _json.py
│ │ │ ├── encoding.py
│ │ │ ├── exc.py
│ │ │ ├── jws.py
│ │ │ ├── serializer.py
│ │ │ ├── signer.py
│ │ │ ├── timed.py
│ │ │ └── url_safe.py
│ │ │ ├── jinja2
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── _compat.cpython-36.pyc
│ │ │ │ ├── _identifier.cpython-36.pyc
│ │ │ │ ├── asyncfilters.cpython-36.pyc
│ │ │ │ ├── asyncsupport.cpython-36.pyc
│ │ │ │ ├── bccache.cpython-36.pyc
│ │ │ │ ├── compiler.cpython-36.pyc
│ │ │ │ ├── constants.cpython-36.pyc
│ │ │ │ ├── debug.cpython-36.pyc
│ │ │ │ ├── defaults.cpython-36.pyc
│ │ │ │ ├── environment.cpython-36.pyc
│ │ │ │ ├── exceptions.cpython-36.pyc
│ │ │ │ ├── ext.cpython-36.pyc
│ │ │ │ ├── filters.cpython-36.pyc
│ │ │ │ ├── idtracking.cpython-36.pyc
│ │ │ │ ├── lexer.cpython-36.pyc
│ │ │ │ ├── loaders.cpython-36.pyc
│ │ │ │ ├── meta.cpython-36.pyc
│ │ │ │ ├── nativetypes.cpython-36.pyc
│ │ │ │ ├── nodes.cpython-36.pyc
│ │ │ │ ├── optimizer.cpython-36.pyc
│ │ │ │ ├── parser.cpython-36.pyc
│ │ │ │ ├── runtime.cpython-36.pyc
│ │ │ │ ├── sandbox.cpython-36.pyc
│ │ │ │ ├── tests.cpython-36.pyc
│ │ │ │ ├── utils.cpython-36.pyc
│ │ │ │ └── visitor.cpython-36.pyc
│ │ │ ├── _compat.py
│ │ │ ├── _identifier.py
│ │ │ ├── asyncfilters.py
│ │ │ ├── asyncsupport.py
│ │ │ ├── bccache.py
│ │ │ ├── compiler.py
│ │ │ ├── constants.py
│ │ │ ├── debug.py
│ │ │ ├── defaults.py
│ │ │ ├── environment.py
│ │ │ ├── exceptions.py
│ │ │ ├── ext.py
│ │ │ ├── filters.py
│ │ │ ├── idtracking.py
│ │ │ ├── lexer.py
│ │ │ ├── loaders.py
│ │ │ ├── meta.py
│ │ │ ├── nativetypes.py
│ │ │ ├── nodes.py
│ │ │ ├── optimizer.py
│ │ │ ├── parser.py
│ │ │ ├── runtime.py
│ │ │ ├── sandbox.py
│ │ │ ├── tests.py
│ │ │ ├── utils.py
│ │ │ └── visitor.py
│ │ │ ├── markupsafe
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── _compat.cpython-36.pyc
│ │ │ │ ├── _constants.cpython-36.pyc
│ │ │ │ └── _native.cpython-36.pyc
│ │ │ ├── _compat.py
│ │ │ ├── _constants.py
│ │ │ ├── _native.py
│ │ │ ├── _speedups.c
│ │ │ └── _speedups.cpython-36m-x86_64-linux-gnu.so
│ │ │ ├── pip-19.0.3-py3.6.egg
│ │ │ ├── EGG-INFO
│ │ │ │ ├── PKG-INFO
│ │ │ │ ├── SOURCES.txt
│ │ │ │ ├── dependency_links.txt
│ │ │ │ ├── entry_points.txt
│ │ │ │ ├── not-zip-safe
│ │ │ │ └── top_level.txt
│ │ │ └── pip
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __main__.py
│ │ │ │ ├── _internal
│ │ │ │ ├── __init__.py
│ │ │ │ ├── build_env.py
│ │ │ │ ├── cache.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── autocompletion.py
│ │ │ │ │ ├── base_command.py
│ │ │ │ │ ├── cmdoptions.py
│ │ │ │ │ ├── main_parser.py
│ │ │ │ │ ├── parser.py
│ │ │ │ │ └── status_codes.py
│ │ │ │ ├── commands
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── completion.py
│ │ │ │ │ ├── configuration.py
│ │ │ │ │ ├── download.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── hash.py
│ │ │ │ │ ├── help.py
│ │ │ │ │ ├── install.py
│ │ │ │ │ ├── list.py
│ │ │ │ │ ├── search.py
│ │ │ │ │ ├── show.py
│ │ │ │ │ ├── uninstall.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── configuration.py
│ │ │ │ ├── download.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── index.py
│ │ │ │ ├── locations.py
│ │ │ │ ├── models
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── candidate.py
│ │ │ │ │ ├── format_control.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ └── link.py
│ │ │ │ ├── operations
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ └── prepare.py
│ │ │ │ ├── pep425tags.py
│ │ │ │ ├── pyproject.py
│ │ │ │ ├── req
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── constructors.py
│ │ │ │ │ ├── req_file.py
│ │ │ │ │ ├── req_install.py
│ │ │ │ │ ├── req_set.py
│ │ │ │ │ ├── req_tracker.py
│ │ │ │ │ └── req_uninstall.py
│ │ │ │ ├── resolve.py
│ │ │ │ ├── utils
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── appdirs.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── deprecation.py
│ │ │ │ │ ├── encoding.py
│ │ │ │ │ ├── filesystem.py
│ │ │ │ │ ├── glibc.py
│ │ │ │ │ ├── hashes.py
│ │ │ │ │ ├── logging.py
│ │ │ │ │ ├── misc.py
│ │ │ │ │ ├── models.py
│ │ │ │ │ ├── outdated.py
│ │ │ │ │ ├── packaging.py
│ │ │ │ │ ├── setuptools_build.py
│ │ │ │ │ ├── temp_dir.py
│ │ │ │ │ ├── typing.py
│ │ │ │ │ └── ui.py
│ │ │ │ ├── vcs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── bazaar.py
│ │ │ │ │ ├── git.py
│ │ │ │ │ ├── mercurial.py
│ │ │ │ │ └── subversion.py
│ │ │ │ └── wheel.py
│ │ │ │ └── _vendor
│ │ │ │ ├── __init__.py
│ │ │ │ ├── appdirs.py
│ │ │ │ ├── cachecontrol
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _cmd.py
│ │ │ │ ├── adapter.py
│ │ │ │ ├── cache.py
│ │ │ │ ├── caches
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── file_cache.py
│ │ │ │ │ └── redis_cache.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── controller.py
│ │ │ │ ├── filewrapper.py
│ │ │ │ ├── heuristics.py
│ │ │ │ ├── serialize.py
│ │ │ │ └── wrapper.py
│ │ │ │ ├── certifi
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __main__.py
│ │ │ │ ├── cacert.pem
│ │ │ │ └── core.py
│ │ │ │ ├── chardet
│ │ │ │ ├── __init__.py
│ │ │ │ ├── big5freq.py
│ │ │ │ ├── big5prober.py
│ │ │ │ ├── chardistribution.py
│ │ │ │ ├── charsetgroupprober.py
│ │ │ │ ├── charsetprober.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── chardetect.py
│ │ │ │ ├── codingstatemachine.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── cp949prober.py
│ │ │ │ ├── enums.py
│ │ │ │ ├── escprober.py
│ │ │ │ ├── escsm.py
│ │ │ │ ├── eucjpprober.py
│ │ │ │ ├── euckrfreq.py
│ │ │ │ ├── euckrprober.py
│ │ │ │ ├── euctwfreq.py
│ │ │ │ ├── euctwprober.py
│ │ │ │ ├── gb2312freq.py
│ │ │ │ ├── gb2312prober.py
│ │ │ │ ├── hebrewprober.py
│ │ │ │ ├── jisfreq.py
│ │ │ │ ├── jpcntx.py
│ │ │ │ ├── langbulgarianmodel.py
│ │ │ │ ├── langcyrillicmodel.py
│ │ │ │ ├── langgreekmodel.py
│ │ │ │ ├── langhebrewmodel.py
│ │ │ │ ├── langhungarianmodel.py
│ │ │ │ ├── langthaimodel.py
│ │ │ │ ├── langturkishmodel.py
│ │ │ │ ├── latin1prober.py
│ │ │ │ ├── mbcharsetprober.py
│ │ │ │ ├── mbcsgroupprober.py
│ │ │ │ ├── mbcssm.py
│ │ │ │ ├── sbcharsetprober.py
│ │ │ │ ├── sbcsgroupprober.py
│ │ │ │ ├── sjisprober.py
│ │ │ │ ├── universaldetector.py
│ │ │ │ ├── utf8prober.py
│ │ │ │ └── version.py
│ │ │ │ ├── colorama
│ │ │ │ ├── __init__.py
│ │ │ │ ├── ansi.py
│ │ │ │ ├── ansitowin32.py
│ │ │ │ ├── initialise.py
│ │ │ │ ├── win32.py
│ │ │ │ └── winterm.py
│ │ │ │ ├── distlib
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _backport
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── misc.py
│ │ │ │ │ ├── shutil.py
│ │ │ │ │ ├── sysconfig.cfg
│ │ │ │ │ ├── sysconfig.py
│ │ │ │ │ └── tarfile.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── database.py
│ │ │ │ ├── index.py
│ │ │ │ ├── locators.py
│ │ │ │ ├── manifest.py
│ │ │ │ ├── markers.py
│ │ │ │ ├── metadata.py
│ │ │ │ ├── resources.py
│ │ │ │ ├── scripts.py
│ │ │ │ ├── t32.exe
│ │ │ │ ├── t64.exe
│ │ │ │ ├── util.py
│ │ │ │ ├── version.py
│ │ │ │ ├── w32.exe
│ │ │ │ ├── w64.exe
│ │ │ │ └── wheel.py
│ │ │ │ ├── distro.py
│ │ │ │ ├── html5lib
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _ihatexml.py
│ │ │ │ ├── _inputstream.py
│ │ │ │ ├── _tokenizer.py
│ │ │ │ ├── _trie
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── _base.py
│ │ │ │ │ ├── datrie.py
│ │ │ │ │ └── py.py
│ │ │ │ ├── _utils.py
│ │ │ │ ├── constants.py
│ │ │ │ ├── filters
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── alphabeticalattributes.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── inject_meta_charset.py
│ │ │ │ │ ├── lint.py
│ │ │ │ │ ├── optionaltags.py
│ │ │ │ │ ├── sanitizer.py
│ │ │ │ │ └── whitespace.py
│ │ │ │ ├── html5parser.py
│ │ │ │ ├── serializer.py
│ │ │ │ ├── treeadapters
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── genshi.py
│ │ │ │ │ └── sax.py
│ │ │ │ ├── treebuilders
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── dom.py
│ │ │ │ │ ├── etree.py
│ │ │ │ │ └── etree_lxml.py
│ │ │ │ └── treewalkers
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── dom.py
│ │ │ │ │ ├── etree.py
│ │ │ │ │ ├── etree_lxml.py
│ │ │ │ │ └── genshi.py
│ │ │ │ ├── idna
│ │ │ │ ├── __init__.py
│ │ │ │ ├── codec.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── core.py
│ │ │ │ ├── idnadata.py
│ │ │ │ ├── intranges.py
│ │ │ │ ├── package_data.py
│ │ │ │ └── uts46data.py
│ │ │ │ ├── ipaddress.py
│ │ │ │ ├── lockfile
│ │ │ │ ├── __init__.py
│ │ │ │ ├── linklockfile.py
│ │ │ │ ├── mkdirlockfile.py
│ │ │ │ ├── pidlockfile.py
│ │ │ │ ├── sqlitelockfile.py
│ │ │ │ └── symlinklockfile.py
│ │ │ │ ├── msgpack
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _version.py
│ │ │ │ ├── exceptions.py
│ │ │ │ └── fallback.py
│ │ │ │ ├── packaging
│ │ │ │ ├── __about__.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _compat.py
│ │ │ │ ├── _structures.py
│ │ │ │ ├── markers.py
│ │ │ │ ├── requirements.py
│ │ │ │ ├── specifiers.py
│ │ │ │ ├── utils.py
│ │ │ │ └── version.py
│ │ │ │ ├── pep517
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _in_process.py
│ │ │ │ ├── build.py
│ │ │ │ ├── check.py
│ │ │ │ ├── colorlog.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── envbuild.py
│ │ │ │ └── wrappers.py
│ │ │ │ ├── pkg_resources
│ │ │ │ ├── __init__.py
│ │ │ │ └── py31compat.py
│ │ │ │ ├── progress
│ │ │ │ ├── __init__.py
│ │ │ │ ├── bar.py
│ │ │ │ ├── counter.py
│ │ │ │ ├── helpers.py
│ │ │ │ └── spinner.py
│ │ │ │ ├── pyparsing.py
│ │ │ │ ├── pytoml
│ │ │ │ ├── __init__.py
│ │ │ │ ├── core.py
│ │ │ │ ├── parser.py
│ │ │ │ ├── test.py
│ │ │ │ ├── utils.py
│ │ │ │ └── writer.py
│ │ │ │ ├── requests
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __version__.py
│ │ │ │ ├── _internal_utils.py
│ │ │ │ ├── adapters.py
│ │ │ │ ├── api.py
│ │ │ │ ├── auth.py
│ │ │ │ ├── certs.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── cookies.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── help.py
│ │ │ │ ├── hooks.py
│ │ │ │ ├── models.py
│ │ │ │ ├── packages.py
│ │ │ │ ├── sessions.py
│ │ │ │ ├── status_codes.py
│ │ │ │ ├── structures.py
│ │ │ │ └── utils.py
│ │ │ │ ├── retrying.py
│ │ │ │ ├── six.py
│ │ │ │ ├── urllib3
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _collections.py
│ │ │ │ ├── connection.py
│ │ │ │ ├── connectionpool.py
│ │ │ │ ├── contrib
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── _appengine_environ.py
│ │ │ │ │ ├── _securetransport
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── bindings.py
│ │ │ │ │ │ └── low_level.py
│ │ │ │ │ ├── appengine.py
│ │ │ │ │ ├── ntlmpool.py
│ │ │ │ │ ├── pyopenssl.py
│ │ │ │ │ ├── securetransport.py
│ │ │ │ │ └── socks.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── fields.py
│ │ │ │ ├── filepost.py
│ │ │ │ ├── packages
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── backports
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── makefile.py
│ │ │ │ │ ├── six.py
│ │ │ │ │ └── ssl_match_hostname
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ └── _implementation.py
│ │ │ │ ├── poolmanager.py
│ │ │ │ ├── request.py
│ │ │ │ ├── response.py
│ │ │ │ └── util
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── connection.py
│ │ │ │ │ ├── queue.py
│ │ │ │ │ ├── request.py
│ │ │ │ │ ├── response.py
│ │ │ │ │ ├── retry.py
│ │ │ │ │ ├── ssl_.py
│ │ │ │ │ ├── timeout.py
│ │ │ │ │ ├── url.py
│ │ │ │ │ └── wait.py
│ │ │ │ └── webencodings
│ │ │ │ ├── __init__.py
│ │ │ │ ├── labels.py
│ │ │ │ ├── mklabels.py
│ │ │ │ ├── tests.py
│ │ │ │ └── x_user_defined.py
│ │ │ ├── setuptools-40.8.0-py3.6.egg
│ │ │ ├── setuptools.pth
│ │ │ └── werkzeug
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ ├── __init__.cpython-36.pyc
│ │ │ ├── _compat.cpython-36.pyc
│ │ │ ├── _internal.cpython-36.pyc
│ │ │ ├── _reloader.cpython-36.pyc
│ │ │ ├── datastructures.cpython-36.pyc
│ │ │ ├── exceptions.cpython-36.pyc
│ │ │ ├── filesystem.cpython-36.pyc
│ │ │ ├── formparser.cpython-36.pyc
│ │ │ ├── http.cpython-36.pyc
│ │ │ ├── local.cpython-36.pyc
│ │ │ ├── posixemulation.cpython-36.pyc
│ │ │ ├── routing.cpython-36.pyc
│ │ │ ├── security.cpython-36.pyc
│ │ │ ├── serving.cpython-36.pyc
│ │ │ ├── test.cpython-36.pyc
│ │ │ ├── testapp.cpython-36.pyc
│ │ │ ├── urls.cpython-36.pyc
│ │ │ ├── useragents.cpython-36.pyc
│ │ │ ├── utils.cpython-36.pyc
│ │ │ └── wsgi.cpython-36.pyc
│ │ │ ├── _compat.py
│ │ │ ├── _internal.py
│ │ │ ├── _reloader.py
│ │ │ ├── contrib
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── atom.cpython-36.pyc
│ │ │ │ ├── cache.cpython-36.pyc
│ │ │ │ ├── fixers.cpython-36.pyc
│ │ │ │ ├── iterio.cpython-36.pyc
│ │ │ │ ├── lint.cpython-36.pyc
│ │ │ │ ├── profiler.cpython-36.pyc
│ │ │ │ ├── securecookie.cpython-36.pyc
│ │ │ │ ├── sessions.cpython-36.pyc
│ │ │ │ └── wrappers.cpython-36.pyc
│ │ │ ├── atom.py
│ │ │ ├── cache.py
│ │ │ ├── fixers.py
│ │ │ ├── iterio.py
│ │ │ ├── lint.py
│ │ │ ├── profiler.py
│ │ │ ├── securecookie.py
│ │ │ ├── sessions.py
│ │ │ └── wrappers.py
│ │ │ ├── datastructures.py
│ │ │ ├── debug
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── console.cpython-36.pyc
│ │ │ │ ├── repr.cpython-36.pyc
│ │ │ │ └── tbtools.cpython-36.pyc
│ │ │ ├── console.py
│ │ │ ├── repr.py
│ │ │ ├── shared
│ │ │ │ ├── FONT_LICENSE
│ │ │ │ ├── console.png
│ │ │ │ ├── debugger.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── less.png
│ │ │ │ ├── more.png
│ │ │ │ ├── source.png
│ │ │ │ ├── style.css
│ │ │ │ └── ubuntu.ttf
│ │ │ └── tbtools.py
│ │ │ ├── exceptions.py
│ │ │ ├── filesystem.py
│ │ │ ├── formparser.py
│ │ │ ├── http.py
│ │ │ ├── local.py
│ │ │ ├── middleware
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── dispatcher.cpython-36.pyc
│ │ │ │ ├── http_proxy.cpython-36.pyc
│ │ │ │ ├── lint.cpython-36.pyc
│ │ │ │ ├── profiler.cpython-36.pyc
│ │ │ │ ├── proxy_fix.cpython-36.pyc
│ │ │ │ └── shared_data.cpython-36.pyc
│ │ │ ├── dispatcher.py
│ │ │ ├── http_proxy.py
│ │ │ ├── lint.py
│ │ │ ├── profiler.py
│ │ │ ├── proxy_fix.py
│ │ │ └── shared_data.py
│ │ │ ├── posixemulation.py
│ │ │ ├── routing.py
│ │ │ ├── security.py
│ │ │ ├── serving.py
│ │ │ ├── test.py
│ │ │ ├── testapp.py
│ │ │ ├── urls.py
│ │ │ ├── useragents.py
│ │ │ ├── utils.py
│ │ │ ├── wrappers
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-36.pyc
│ │ │ │ ├── accept.cpython-36.pyc
│ │ │ │ ├── auth.cpython-36.pyc
│ │ │ │ ├── base_request.cpython-36.pyc
│ │ │ │ ├── base_response.cpython-36.pyc
│ │ │ │ ├── common_descriptors.cpython-36.pyc
│ │ │ │ ├── etag.cpython-36.pyc
│ │ │ │ ├── json.cpython-36.pyc
│ │ │ │ ├── request.cpython-36.pyc
│ │ │ │ ├── response.cpython-36.pyc
│ │ │ │ └── user_agent.cpython-36.pyc
│ │ │ ├── accept.py
│ │ │ ├── auth.py
│ │ │ ├── base_request.py
│ │ │ ├── base_response.py
│ │ │ ├── common_descriptors.py
│ │ │ ├── etag.py
│ │ │ ├── json.py
│ │ │ ├── request.py
│ │ │ ├── response.py
│ │ │ └── user_agent.py
│ │ │ └── wsgi.py
│ │ ├── lib64
│ │ └── pyvenv.cfg
├── Video 5.3
│ ├── service
│ │ ├── app.py
│ │ └── requirements.txt
│ └── ui
│ │ ├── README.md
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── public
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ └── manifest.json
│ │ ├── src
│ │ ├── App.css
│ │ ├── App.js
│ │ ├── App.test.js
│ │ ├── index.css
│ │ ├── index.js
│ │ ├── logo.svg
│ │ └── serviceWorker.js
│ │ └── yarn.lock
└── Video 5.4
│ ├── service
│ ├── app.py
│ ├── classifier.joblib
│ ├── iris.data
│ ├── model_generator.py
│ └── requirements.txt
│ └── ui
│ ├── README.md
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
│ ├── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ └── serviceWorker.js
│ └── yarn.lock
└── Video 5.3
├── service
├── app.py
└── requirements.txt
└── ui
├── package-lock.json
├── package.json
├── public
├── favicon.ico
├── index.html
└── manifest.json
├── src
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── logo.svg
└── serviceWorker.js
└── yarn.lock
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Packt
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Section 1/.ipynb_checkpoints/Video 5-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "0 Eric\n",
13 | "1 George\n",
14 | "2 Lon.don\n",
15 | "3 Hola Mundo\n",
16 | "dtype: object\n"
17 | ]
18 | }
19 | ],
20 | "source": [
21 | "import pandas as pd\n",
22 | "import numpy as np\n",
23 | "\n",
24 | "s = pd.Series(['Eric','George','Lon.don','Hola Mundo'])\n",
25 | "\n",
26 | "print s"
27 | ]
28 | }
29 | ],
30 | "metadata": {
31 | "kernelspec": {
32 | "display_name": "Python 3",
33 | "language": "python",
34 | "name": "python3"
35 | },
36 | "language_info": {
37 | "codemirror_mode": {
38 | "name": "ipython",
39 | "version": 2
40 | },
41 | "file_extension": ".py",
42 | "mimetype": "text/x-python",
43 | "name": "python",
44 | "nbconvert_exporter": "python",
45 | "pygments_lexer": "ipython2",
46 | "version": "2.7.15rc1"
47 | }
48 | },
49 | "nbformat": 4,
50 | "nbformat_minor": 2
51 | }
52 |
--------------------------------------------------------------------------------
/Section 1/.ipynb_checkpoints/Video 6-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 21,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | " a b c d e\n",
13 | "0 1.450169 1.956904 1.279920 -0.806759 0.284524\n",
14 | "1 -0.359922 -0.445917 1.001644 -0.405297 0.257783\n",
15 | "2 NaN NaN NaN NaN NaN\n",
16 | "3 0.401386 0.197291 -0.672292 0.254545 0.557347\n",
17 | "4 NaN NaN NaN NaN NaN\n",
18 | "5 0.454488 -0.579570 -1.310963 0.496520 -0.730914\n",
19 | "6 -0.947803 -1.560577 0.350522 0.433788 0.834332\n",
20 | "7 NaN NaN NaN NaN NaN\n",
21 | "8 -0.115986 0.774386 0.755964 1.087795 -0.646172\n",
22 | "9 0.285680 0.143283 -0.785946 -0.011120 -0.457556\n"
23 | ]
24 | }
25 | ],
26 | "source": [
27 | "import pandas as pd\n",
28 | "import numpy as np\n",
29 | "\n",
30 | "df = pd.DataFrame(np.random.randn(7, 5), index=['0','1', '3', '5', '6',\n",
31 | "'8','9'],columns=['a', 'b', 'c', 'd', 'e'])\n",
32 | "\n",
33 | "df = df.reindex(['0','1', '2', '3', '4', '5', '6', '7', '8','9'])\n",
34 | "\n",
35 | "print df"
36 | ]
37 | }
38 | ],
39 | "metadata": {
40 | "kernelspec": {
41 | "display_name": "Python 3",
42 | "language": "python",
43 | "name": "python3"
44 | },
45 | "language_info": {
46 | "codemirror_mode": {
47 | "name": "ipython",
48 | "version": 2
49 | },
50 | "file_extension": ".py",
51 | "mimetype": "text/x-python",
52 | "name": "python",
53 | "nbconvert_exporter": "python",
54 | "pygments_lexer": "ipython2",
55 | "version": "2.7.15rc1"
56 | }
57 | },
58 | "nbformat": 4,
59 | "nbformat_minor": 2
60 | }
61 |
--------------------------------------------------------------------------------
/Section 1/Video 1.1/hello.py:
--------------------------------------------------------------------------------
1 | from flask import Flask
2 | app = Flask(__name__)
3 |
4 | @app.route('/')
5 | def hello_world():
6 | return 'Hello, World!!!!'
7 |
--------------------------------------------------------------------------------
/Section 2/.ipynb_checkpoints/Video 2.3-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": null,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": []
9 | }
10 | ],
11 | "metadata": {
12 | "kernelspec": {
13 | "display_name": "Python 3",
14 | "language": "python",
15 | "name": "python3"
16 | },
17 | "language_info": {
18 | "codemirror_mode": {
19 | "name": "ipython",
20 | "version": 2
21 | },
22 | "file_extension": ".py",
23 | "mimetype": "text/x-python",
24 | "name": "python",
25 | "nbconvert_exporter": "python",
26 | "pygments_lexer": "ipython2",
27 | "version": "2.7.15rc1"
28 | }
29 | },
30 | "nbformat": 4,
31 | "nbformat_minor": 2
32 | }
33 |
--------------------------------------------------------------------------------
/Section 2/.ipynb_checkpoints/Video 2.4-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [],
3 | "metadata": {},
4 | "nbformat": 4,
5 | "nbformat_minor": 2
6 | }
7 |
--------------------------------------------------------------------------------
/Section 3/.idea/.name:
--------------------------------------------------------------------------------
1 | Video 3.2
--------------------------------------------------------------------------------
/Section 3/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Section 3/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Section 3/.ipynb_checkpoints/Video 3.2-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [],
3 | "metadata": {},
4 | "nbformat": 4,
5 | "nbformat_minor": 2
6 | }
7 |
--------------------------------------------------------------------------------
/Section 3/.ipynb_checkpoints/Video 3.4-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [],
3 | "metadata": {},
4 | "nbformat": 4,
5 | "nbformat_minor": 2
6 | }
7 |
--------------------------------------------------------------------------------
/Section 4/Video 4.4/.idea/.name:
--------------------------------------------------------------------------------
1 | Video 4.444
--------------------------------------------------------------------------------
/Section 4/Video 4.4/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Section 4/Video 4.4/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/.idea/Video 5.2.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/__pycache__/app.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/__pycache__/app.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/app.py:
--------------------------------------------------------------------------------
1 | from flask import Flask
2 |
3 | app = Flask(__name__)
4 |
5 |
6 | @app.route('/')
7 | def hello_world():
8 | return 'Hello World!'
9 |
10 |
11 | if __name__ == '__main__':
12 | app.run()
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/activate.csh:
--------------------------------------------------------------------------------
1 | # This file must be used with "source bin/activate.csh" *from csh*.
2 | # You cannot run it directly.
3 | # Created by Davide Di Blasi .
4 | # Ported to Python 3.3 venv by Andrew Svetlov
5 |
6 | alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
7 |
8 | # Unset irrelevant variables.
9 | deactivate nondestructive
10 |
11 | setenv VIRTUAL_ENV "/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv"
12 |
13 | set _OLD_VIRTUAL_PATH="$PATH"
14 | setenv PATH "$VIRTUAL_ENV/bin:$PATH"
15 |
16 |
17 | set _OLD_VIRTUAL_PROMPT="$prompt"
18 |
19 | if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
20 | if ("venv" != "") then
21 | set env_name = "venv"
22 | else
23 | if (`basename "VIRTUAL_ENV"` == "__") then
24 | # special case for Aspen magic directories
25 | # see http://www.zetadev.com/software/aspen/
26 | set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
27 | else
28 | set env_name = `basename "$VIRTUAL_ENV"`
29 | endif
30 | endif
31 | set prompt = "[$env_name] $prompt"
32 | unset env_name
33 | endif
34 |
35 | alias pydoc python -m pydoc
36 |
37 | rehash
38 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/easy_install:
--------------------------------------------------------------------------------
1 | #!"/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv/bin/python"
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install'
3 | __requires__ = 'setuptools==40.8.0'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('setuptools==40.8.0', 'console_scripts', 'easy_install')()
12 | )
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/easy_install-3.6:
--------------------------------------------------------------------------------
1 | #!"/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv/bin/python"
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install-3.6'
3 | __requires__ = 'setuptools==40.8.0'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('setuptools==40.8.0', 'console_scripts', 'easy_install-3.6')()
12 | )
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/flask:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | '''exec' "/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv/bin/python" "$0" "$@"
3 | ' '''
4 | # -*- coding: utf-8 -*-
5 | import re
6 | import sys
7 |
8 | from flask.cli import main
9 |
10 | if __name__ == '__main__':
11 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
12 | sys.exit(main())
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/pip:
--------------------------------------------------------------------------------
1 | #!"/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv/bin/python"
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip'
3 | __requires__ = 'pip==19.0.3'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('pip==19.0.3', 'console_scripts', 'pip')()
12 | )
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/pip3:
--------------------------------------------------------------------------------
1 | #!"/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv/bin/python"
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3'
3 | __requires__ = 'pip==19.0.3'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('pip==19.0.3', 'console_scripts', 'pip3')()
12 | )
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/pip3.6:
--------------------------------------------------------------------------------
1 | #!"/home/eric/github/Building-Recommendation-Systems-with-Python/Section 5/Video 5.2/venv/bin/python"
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3.6'
3 | __requires__ = 'pip==19.0.3'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('pip==19.0.3', 'console_scripts', 'pip3.6')()
12 | )
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/python:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/bin/python
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/python3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/bin/python3
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/bin/python3.6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/bin/python3.6
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Click-7.0.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Click-7.0.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.31.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Click-7.0.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | click
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Flask-1.0.3.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Flask-1.0.3.dist-info/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright © 2010 by the Pallets team.
2 |
3 | Some rights reserved.
4 |
5 | Redistribution and use in source and binary forms of the software as
6 | well as documentation, with or without modification, are permitted
7 | provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice,
10 | this list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright
13 | notice, this list of conditions and the following disclaimer in the
14 | documentation and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
21 | CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
22 | BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
23 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27 | USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 | THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
31 | SUCH DAMAGE.
32 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Flask-1.0.3.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.33.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Flask-1.0.3.dist-info/entry_points.txt:
--------------------------------------------------------------------------------
1 | [console_scripts]
2 | flask = flask.cli:main
3 |
4 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Flask-1.0.3.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | flask
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Jinja2-2.10.1.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Jinja2-2.10.1.dist-info/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details.
2 |
3 | Some rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are
7 | met:
8 |
9 | * Redistributions of source code must retain the above copyright
10 | notice, this list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above
13 | copyright notice, this list of conditions and the following
14 | disclaimer in the documentation and/or other materials provided
15 | with the distribution.
16 |
17 | * The names of the contributors may not be used to endorse or
18 | promote products derived from this software without specific
19 | prior written permission.
20 |
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Jinja2-2.10.1.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.33.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Jinja2-2.10.1.dist-info/entry_points.txt:
--------------------------------------------------------------------------------
1 |
2 | [babel.extractors]
3 | jinja2 = jinja2.ext:babel_extract[i18n]
4 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Jinja2-2.10.1.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | jinja2
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/MarkupSafe-1.1.1.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/MarkupSafe-1.1.1.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2010 Pallets
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are
5 | met:
6 |
7 | 1. Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of the copyright holder nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/MarkupSafe-1.1.1.dist-info/RECORD:
--------------------------------------------------------------------------------
1 | MarkupSafe-1.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2 | MarkupSafe-1.1.1.dist-info/LICENSE.txt,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475
3 | MarkupSafe-1.1.1.dist-info/METADATA,sha256=nJHwJ4_4ka-V39QH883jPrslj6inNdyyNASBXbYgHXQ,3570
4 | MarkupSafe-1.1.1.dist-info/RECORD,,
5 | MarkupSafe-1.1.1.dist-info/WHEEL,sha256=d2ILPScH-y2UwGxsW1PeA2TT-KW0Git4AJ6LeOK8sQo,109
6 | MarkupSafe-1.1.1.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11
7 | markupsafe/__init__.py,sha256=oTblO5f9KFM-pvnq9bB0HgElnqkJyqHnFN1Nx2NIvnY,10126
8 | markupsafe/__pycache__/__init__.cpython-36.pyc,,
9 | markupsafe/__pycache__/_compat.cpython-36.pyc,,
10 | markupsafe/__pycache__/_constants.cpython-36.pyc,,
11 | markupsafe/__pycache__/_native.cpython-36.pyc,,
12 | markupsafe/_compat.py,sha256=uEW1ybxEjfxIiuTbRRaJpHsPFf4yQUMMKaPgYEC5XbU,558
13 | markupsafe/_constants.py,sha256=zo2ajfScG-l1Sb_52EP3MlDCqO7Y1BVHUXXKRsVDRNk,4690
14 | markupsafe/_native.py,sha256=d-8S_zzYt2y512xYcuSxq0NeG2DUUvG80wVdTn-4KI8,1873
15 | markupsafe/_speedups.c,sha256=k0fzEIK3CP6MmMqeY0ob43TP90mVN0DTyn7BAl3RqSg,9884
16 | markupsafe/_speedups.cpython-36m-x86_64-linux-gnu.so,sha256=YAxqjdtS2XJQ043wfxMAnE1u7KpsBc49UrW9yGPiK0w,38875
17 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/MarkupSafe-1.1.1.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.31.1)
3 | Root-Is-Purelib: false
4 | Tag: cp36-cp36m-manylinux1_x86_64
5 |
6 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/MarkupSafe-1.1.1.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | markupsafe
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Werkzeug-0.15.4.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Werkzeug-0.15.4.dist-info/LICENSE.rst:
--------------------------------------------------------------------------------
1 | Copyright 2007 Pallets
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are
5 | met:
6 |
7 | 1. Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of the copyright holder nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Werkzeug-0.15.4.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.33.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/Werkzeug-0.15.4.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | werkzeug
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_bashcomplete.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_bashcomplete.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_compat.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_compat.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_termui_impl.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_termui_impl.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_textwrap.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_textwrap.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_unicodefun.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_unicodefun.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_winconsole.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/_winconsole.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/core.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/core.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/decorators.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/decorators.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/exceptions.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/exceptions.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/formatting.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/formatting.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/globals.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/globals.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/parser.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/parser.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/termui.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/termui.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/testing.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/testing.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/types.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/types.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/utils.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/__pycache__/utils.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/_textwrap.py:
--------------------------------------------------------------------------------
1 | import textwrap
2 | from contextlib import contextmanager
3 |
4 |
5 | class TextWrapper(textwrap.TextWrapper):
6 |
7 | def _handle_long_word(self, reversed_chunks, cur_line, cur_len, width):
8 | space_left = max(width - cur_len, 1)
9 |
10 | if self.break_long_words:
11 | last = reversed_chunks[-1]
12 | cut = last[:space_left]
13 | res = last[space_left:]
14 | cur_line.append(cut)
15 | reversed_chunks[-1] = res
16 | elif not cur_line:
17 | cur_line.append(reversed_chunks.pop())
18 |
19 | @contextmanager
20 | def extra_indent(self, indent):
21 | old_initial_indent = self.initial_indent
22 | old_subsequent_indent = self.subsequent_indent
23 | self.initial_indent += indent
24 | self.subsequent_indent += indent
25 | try:
26 | yield
27 | finally:
28 | self.initial_indent = old_initial_indent
29 | self.subsequent_indent = old_subsequent_indent
30 |
31 | def indent_only(self, text):
32 | rv = []
33 | for idx, line in enumerate(text.splitlines()):
34 | indent = self.initial_indent
35 | if idx > 0:
36 | indent = self.subsequent_indent
37 | rv.append(indent + line)
38 | return '\n'.join(rv)
39 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/click/globals.py:
--------------------------------------------------------------------------------
1 | from threading import local
2 |
3 |
4 | _local = local()
5 |
6 |
7 | def get_current_context(silent=False):
8 | """Returns the current click context. This can be used as a way to
9 | access the current context object from anywhere. This is a more implicit
10 | alternative to the :func:`pass_context` decorator. This function is
11 | primarily useful for helpers such as :func:`echo` which might be
12 | interested in changing its behavior based on the current context.
13 |
14 | To push the current context, :meth:`Context.scope` can be used.
15 |
16 | .. versionadded:: 5.0
17 |
18 | :param silent: is set to `True` the return value is `None` if no context
19 | is available. The default behavior is to raise a
20 | :exc:`RuntimeError`.
21 | """
22 | try:
23 | return getattr(_local, 'stack')[-1]
24 | except (AttributeError, IndexError):
25 | if not silent:
26 | raise RuntimeError('There is no active click context.')
27 |
28 |
29 | def push_context(ctx):
30 | """Pushes a new context to the current stack."""
31 | _local.__dict__.setdefault('stack', []).append(ctx)
32 |
33 |
34 | def pop_context():
35 | """Removes the top level from the stack."""
36 | _local.stack.pop()
37 |
38 |
39 | def resolve_color_default(color=None):
40 | """"Internal helper to get the default value of the color flag. If a
41 | value is passed it's returned unchanged, otherwise it's looked up from
42 | the current context.
43 | """
44 | if color is not None:
45 | return color
46 | ctx = get_current_context(silent=True)
47 | if ctx is not None:
48 | return ctx.color
49 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/easy-install.pth:
--------------------------------------------------------------------------------
1 | ./setuptools-40.8.0-py3.6.egg
2 | ./pip-19.0.3-py3.6.egg
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | flask
4 | ~~~~~
5 |
6 | A microframework based on Werkzeug. It's extensively documented
7 | and follows best practice patterns.
8 |
9 | :copyright: © 2010 by the Pallets team.
10 | :license: BSD, see LICENSE for more details.
11 | """
12 |
13 | __version__ = '1.0.3'
14 |
15 | # utilities we import from Werkzeug and Jinja2 that are unused
16 | # in the module but are exported as public interface.
17 | from werkzeug.exceptions import abort
18 | from werkzeug.utils import redirect
19 | from jinja2 import Markup, escape
20 |
21 | from .app import Flask, Request, Response
22 | from .config import Config
23 | from .helpers import url_for, flash, send_file, send_from_directory, \
24 | get_flashed_messages, get_template_attribute, make_response, safe_join, \
25 | stream_with_context
26 | from .globals import current_app, g, request, session, _request_ctx_stack, \
27 | _app_ctx_stack
28 | from .ctx import has_request_context, has_app_context, \
29 | after_this_request, copy_current_request_context
30 | from .blueprints import Blueprint
31 | from .templating import render_template, render_template_string
32 |
33 | # the signals
34 | from .signals import signals_available, template_rendered, request_started, \
35 | request_finished, got_request_exception, request_tearing_down, \
36 | appcontext_tearing_down, appcontext_pushed, \
37 | appcontext_popped, message_flashed, before_render_template
38 |
39 | # We're not exposing the actual json module but a convenient wrapper around
40 | # it.
41 | from . import json
42 |
43 | # This was the only thing that Flask used to export at one point and it had
44 | # a more generic name.
45 | jsonify = json.jsonify
46 |
47 | # backwards compat, goes away in 1.0
48 | from .sessions import SecureCookieSession as Session
49 | json_available = True
50 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__main__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | flask.__main__
4 | ~~~~~~~~~~~~~~
5 |
6 | Alias for flask.run for the command line.
7 |
8 | :copyright: © 2010 by the Pallets team.
9 | :license: BSD, see LICENSE for more details.
10 | """
11 |
12 | if __name__ == '__main__':
13 | from .cli import main
14 | main(as_module=True)
15 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/__main__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/__main__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/_compat.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/_compat.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/app.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/app.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/blueprints.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/blueprints.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/cli.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/cli.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/config.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/config.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/ctx.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/ctx.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/debughelpers.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/debughelpers.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/globals.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/globals.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/helpers.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/helpers.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/logging.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/logging.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/sessions.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/sessions.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/signals.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/signals.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/templating.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/templating.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/testing.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/testing.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/views.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/views.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/wrappers.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/__pycache__/wrappers.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/globals.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | flask.globals
4 | ~~~~~~~~~~~~~
5 |
6 | Defines all the global objects that are proxies to the current
7 | active context.
8 |
9 | :copyright: © 2010 by the Pallets team.
10 | :license: BSD, see LICENSE for more details.
11 | """
12 |
13 | from functools import partial
14 | from werkzeug.local import LocalStack, LocalProxy
15 |
16 |
17 | _request_ctx_err_msg = '''\
18 | Working outside of request context.
19 |
20 | This typically means that you attempted to use functionality that needed
21 | an active HTTP request. Consult the documentation on testing for
22 | information about how to avoid this problem.\
23 | '''
24 | _app_ctx_err_msg = '''\
25 | Working outside of application context.
26 |
27 | This typically means that you attempted to use functionality that needed
28 | to interface with the current application object in some way. To solve
29 | this, set up an application context with app.app_context(). See the
30 | documentation for more information.\
31 | '''
32 |
33 |
34 | def _lookup_req_object(name):
35 | top = _request_ctx_stack.top
36 | if top is None:
37 | raise RuntimeError(_request_ctx_err_msg)
38 | return getattr(top, name)
39 |
40 |
41 | def _lookup_app_object(name):
42 | top = _app_ctx_stack.top
43 | if top is None:
44 | raise RuntimeError(_app_ctx_err_msg)
45 | return getattr(top, name)
46 |
47 |
48 | def _find_app():
49 | top = _app_ctx_stack.top
50 | if top is None:
51 | raise RuntimeError(_app_ctx_err_msg)
52 | return top.app
53 |
54 |
55 | # context locals
56 | _request_ctx_stack = LocalStack()
57 | _app_ctx_stack = LocalStack()
58 | current_app = LocalProxy(_find_app)
59 | request = LocalProxy(partial(_lookup_req_object, 'request'))
60 | session = LocalProxy(partial(_lookup_req_object, 'session'))
61 | g = LocalProxy(partial(_lookup_app_object, 'g'))
62 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/json/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/json/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/json/__pycache__/tag.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/flask/json/__pycache__/tag.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous-1.1.0.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous-1.1.0.dist-info/RECORD:
--------------------------------------------------------------------------------
1 | itsdangerous-1.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2 | itsdangerous-1.1.0.dist-info/LICENSE.rst,sha256=_rKL-jSNgWsOfbrt3xhJnufoAHxngT241qs3xl4EbNQ,2120
3 | itsdangerous-1.1.0.dist-info/METADATA,sha256=yyKjL2WOg_WybH2Yt-7NIvGpV3B93IsMc2HbToWc7Sk,3062
4 | itsdangerous-1.1.0.dist-info/RECORD,,
5 | itsdangerous-1.1.0.dist-info/WHEEL,sha256=CihQvCnsGZQBGAHLEUMf0IdA4fRduS_NBUTMgCTtvPM,110
6 | itsdangerous-1.1.0.dist-info/top_level.txt,sha256=gKN1OKLk81i7fbWWildJA88EQ9NhnGMSvZqhfz9ICjk,13
7 | itsdangerous/__init__.py,sha256=Dr-SkfFdOyiR_WjiqIXnlFpYRMW0XvPBNV5muzE5N_A,708
8 | itsdangerous/__pycache__/__init__.cpython-36.pyc,,
9 | itsdangerous/__pycache__/_compat.cpython-36.pyc,,
10 | itsdangerous/__pycache__/_json.cpython-36.pyc,,
11 | itsdangerous/__pycache__/encoding.cpython-36.pyc,,
12 | itsdangerous/__pycache__/exc.cpython-36.pyc,,
13 | itsdangerous/__pycache__/jws.cpython-36.pyc,,
14 | itsdangerous/__pycache__/serializer.cpython-36.pyc,,
15 | itsdangerous/__pycache__/signer.cpython-36.pyc,,
16 | itsdangerous/__pycache__/timed.cpython-36.pyc,,
17 | itsdangerous/__pycache__/url_safe.cpython-36.pyc,,
18 | itsdangerous/_compat.py,sha256=oAAMcQAjwQXQpIbuHT3o-aL56ztm_7Fe-4lD7IteF6A,1133
19 | itsdangerous/_json.py,sha256=W7BLL4RPnSOjNdo2gfKT3BeARMCIikY6O75rwWV0XoE,431
20 | itsdangerous/encoding.py,sha256=KhY85PsH3bGHe5JANN4LMZ_3b0IwUWRRnnw1wvLlaIg,1224
21 | itsdangerous/exc.py,sha256=KFxg7K2XMliMQAxL4jkRNgE8e73z2jcRaLrzwqVObnI,2959
22 | itsdangerous/jws.py,sha256=6Lh9W-Lu8D9s7bRazs0Zb35eyAZm3pzLeZqHmRELeII,7470
23 | itsdangerous/serializer.py,sha256=bT-dfjKec9zcKa8Qo8n7mHW_8M-XCTPMOFq1TQI_Fv4,8653
24 | itsdangerous/signer.py,sha256=OOZbK8XomBjQfOFEul8osesn7fc80MXB0L1r7E86_GQ,6345
25 | itsdangerous/timed.py,sha256=on5Q5lX7LT_LaETOhzF1ZmrRbia8P98263R8FiRyM6Y,5635
26 | itsdangerous/url_safe.py,sha256=xnFTaukIPmW6Qwn6uNQLgzdau8RuAKnp5N7ukuXykj0,2275
27 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous-1.1.0.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.32.2)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous-1.1.0.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | itsdangerous
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__init__.py:
--------------------------------------------------------------------------------
1 | from ._json import json
2 | from .encoding import base64_decode
3 | from .encoding import base64_encode
4 | from .encoding import want_bytes
5 | from .exc import BadData
6 | from .exc import BadHeader
7 | from .exc import BadPayload
8 | from .exc import BadSignature
9 | from .exc import BadTimeSignature
10 | from .exc import SignatureExpired
11 | from .jws import JSONWebSignatureSerializer
12 | from .jws import TimedJSONWebSignatureSerializer
13 | from .serializer import Serializer
14 | from .signer import HMACAlgorithm
15 | from .signer import NoneAlgorithm
16 | from .signer import Signer
17 | from .timed import TimedSerializer
18 | from .timed import TimestampSigner
19 | from .url_safe import URLSafeSerializer
20 | from .url_safe import URLSafeTimedSerializer
21 |
22 | __version__ = "1.1.0"
23 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/_compat.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/_compat.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/_json.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/_json.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/encoding.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/encoding.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/exc.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/exc.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/jws.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/jws.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/serializer.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/serializer.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/signer.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/signer.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/timed.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/timed.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/url_safe.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/__pycache__/url_safe.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/_compat.py:
--------------------------------------------------------------------------------
1 | import decimal
2 | import hmac
3 | import numbers
4 | import sys
5 |
6 | PY2 = sys.version_info[0] == 2
7 |
8 | if PY2:
9 | from itertools import izip
10 |
11 | text_type = unicode # noqa: 821
12 | else:
13 | izip = zip
14 | text_type = str
15 |
16 | number_types = (numbers.Real, decimal.Decimal)
17 |
18 |
19 | def _constant_time_compare(val1, val2):
20 | """Return ``True`` if the two strings are equal, ``False``
21 | otherwise.
22 |
23 | The time taken is independent of the number of characters that
24 | match. Do not use this function for anything else than comparision
25 | with known length targets.
26 |
27 | This is should be implemented in C in order to get it completely
28 | right.
29 |
30 | This is an alias of :func:`hmac.compare_digest` on Python>=2.7,3.3.
31 | """
32 | len_eq = len(val1) == len(val2)
33 | if len_eq:
34 | result = 0
35 | left = val1
36 | else:
37 | result = 1
38 | left = val2
39 | for x, y in izip(bytearray(left), bytearray(val2)):
40 | result |= x ^ y
41 | return result == 0
42 |
43 |
44 | # Starting with 2.7/3.3 the standard library has a c-implementation for
45 | # constant time string compares.
46 | constant_time_compare = getattr(hmac, "compare_digest", _constant_time_compare)
47 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/_json.py:
--------------------------------------------------------------------------------
1 | try:
2 | import simplejson as json
3 | except ImportError:
4 | import json
5 |
6 |
7 | class _CompactJSON(object):
8 | """Wrapper around json module that strips whitespace."""
9 |
10 | @staticmethod
11 | def loads(payload):
12 | return json.loads(payload)
13 |
14 | @staticmethod
15 | def dumps(obj, **kwargs):
16 | kwargs.setdefault("ensure_ascii", False)
17 | kwargs.setdefault("separators", (",", ":"))
18 | return json.dumps(obj, **kwargs)
19 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/itsdangerous/encoding.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import string
3 | import struct
4 |
5 | from ._compat import text_type
6 | from .exc import BadData
7 |
8 |
9 | def want_bytes(s, encoding="utf-8", errors="strict"):
10 | if isinstance(s, text_type):
11 | s = s.encode(encoding, errors)
12 | return s
13 |
14 |
15 | def base64_encode(string):
16 | """Base64 encode a string of bytes or text. The resulting bytes are
17 | safe to use in URLs.
18 | """
19 | string = want_bytes(string)
20 | return base64.urlsafe_b64encode(string).rstrip(b"=")
21 |
22 |
23 | def base64_decode(string):
24 | """Base64 decode a URL-safe string of bytes or text. The result is
25 | bytes.
26 | """
27 | string = want_bytes(string, encoding="ascii", errors="ignore")
28 | string += b"=" * (-len(string) % 4)
29 |
30 | try:
31 | return base64.urlsafe_b64decode(string)
32 | except (TypeError, ValueError):
33 | raise BadData("Invalid base64-encoded data")
34 |
35 |
36 | # The alphabet used by base64.urlsafe_*
37 | _base64_alphabet = (string.ascii_letters + string.digits + "-_=").encode("ascii")
38 |
39 | _int64_struct = struct.Struct(">Q")
40 | _int_to_bytes = _int64_struct.pack
41 | _bytes_to_int = _int64_struct.unpack
42 |
43 |
44 | def int_to_bytes(num):
45 | return _int_to_bytes(num).lstrip(b"\x00")
46 |
47 |
48 | def bytes_to_int(bytestr):
49 | return _bytes_to_int(bytestr.rjust(8, b"\x00"))[0]
50 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/_compat.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/_compat.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/_identifier.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/_identifier.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/asyncfilters.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/asyncfilters.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/asyncsupport.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/asyncsupport.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/bccache.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/bccache.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/compiler.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/compiler.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/constants.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/constants.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/debug.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/debug.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/defaults.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/defaults.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/environment.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/environment.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/exceptions.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/exceptions.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/ext.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/ext.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/filters.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/filters.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/idtracking.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/idtracking.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/lexer.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/lexer.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/loaders.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/loaders.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/meta.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/meta.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/nativetypes.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/nativetypes.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/nodes.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/nodes.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/optimizer.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/optimizer.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/parser.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/parser.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/runtime.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/runtime.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/sandbox.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/sandbox.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/tests.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/tests.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/utils.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/utils.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/visitor.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/__pycache__/visitor.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/_identifier.py:
--------------------------------------------------------------------------------
1 | # generated by scripts/generate_identifier_pattern.py
2 | pattern = '·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఃా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑅳𑄴𑆀-𑆂𑆳-𑇊𑇀-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯'
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/constants.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | jinja.constants
4 | ~~~~~~~~~~~~~~~
5 |
6 | Various constants.
7 |
8 | :copyright: (c) 2017 by the Jinja Team.
9 | :license: BSD, see LICENSE for more details.
10 | """
11 |
12 |
13 | #: list of lorem ipsum words used by the lipsum() helper function
14 | LOREM_IPSUM_WORDS = u'''\
15 | a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at
16 | auctor augue bibendum blandit class commodo condimentum congue consectetuer
17 | consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus
18 | diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend
19 | elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames
20 | faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac
21 | hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum
22 | justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem
23 | luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie
24 | mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non
25 | nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque
26 | penatibus per pharetra phasellus placerat platea porta porttitor posuere
27 | potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus
28 | ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit
29 | sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor
30 | tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices
31 | ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus
32 | viverra volutpat vulputate'''
33 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/defaults.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | jinja2.defaults
4 | ~~~~~~~~~~~~~~~
5 |
6 | Jinja default filters and tags.
7 |
8 | :copyright: (c) 2017 by the Jinja Team.
9 | :license: BSD, see LICENSE for more details.
10 | """
11 | from jinja2._compat import range_type
12 | from jinja2.utils import generate_lorem_ipsum, Cycler, Joiner, Namespace
13 |
14 |
15 | # defaults for the parser / lexer
16 | BLOCK_START_STRING = '{%'
17 | BLOCK_END_STRING = '%}'
18 | VARIABLE_START_STRING = '{{'
19 | VARIABLE_END_STRING = '}}'
20 | COMMENT_START_STRING = '{#'
21 | COMMENT_END_STRING = '#}'
22 | LINE_STATEMENT_PREFIX = None
23 | LINE_COMMENT_PREFIX = None
24 | TRIM_BLOCKS = False
25 | LSTRIP_BLOCKS = False
26 | NEWLINE_SEQUENCE = '\n'
27 | KEEP_TRAILING_NEWLINE = False
28 |
29 |
30 | # default filters, tests and namespace
31 | from jinja2.filters import FILTERS as DEFAULT_FILTERS
32 | from jinja2.tests import TESTS as DEFAULT_TESTS
33 | DEFAULT_NAMESPACE = {
34 | 'range': range_type,
35 | 'dict': dict,
36 | 'lipsum': generate_lorem_ipsum,
37 | 'cycler': Cycler,
38 | 'joiner': Joiner,
39 | 'namespace': Namespace
40 | }
41 |
42 |
43 | # default policies
44 | DEFAULT_POLICIES = {
45 | 'compiler.ascii_str': True,
46 | 'urlize.rel': 'noopener',
47 | 'urlize.target': None,
48 | 'truncate.leeway': 5,
49 | 'json.dumps_function': None,
50 | 'json.dumps_kwargs': {'sort_keys': True},
51 | 'ext.i18n.trimmed': False,
52 | }
53 |
54 |
55 | # export all constants
56 | __all__ = tuple(x for x in locals().keys() if x.isupper())
57 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/jinja2/optimizer.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | jinja2.optimizer
4 | ~~~~~~~~~~~~~~~~
5 |
6 | The jinja optimizer is currently trying to constant fold a few expressions
7 | and modify the AST in place so that it should be easier to evaluate it.
8 |
9 | Because the AST does not contain all the scoping information and the
10 | compiler has to find that out, we cannot do all the optimizations we
11 | want. For example loop unrolling doesn't work because unrolled loops would
12 | have a different scoping.
13 |
14 | The solution would be a second syntax tree that has the scoping rules stored.
15 |
16 | :copyright: (c) 2017 by the Jinja Team.
17 | :license: BSD.
18 | """
19 | from jinja2 import nodes
20 | from jinja2.visitor import NodeTransformer
21 |
22 |
23 | def optimize(node, environment):
24 | """The context hint can be used to perform an static optimization
25 | based on the context given."""
26 | optimizer = Optimizer(environment)
27 | return optimizer.visit(node)
28 |
29 |
30 | class Optimizer(NodeTransformer):
31 |
32 | def __init__(self, environment):
33 | self.environment = environment
34 |
35 | def fold(self, node, eval_ctx=None):
36 | """Do constant folding."""
37 | node = self.generic_visit(node)
38 | try:
39 | return nodes.Const.from_untrusted(node.as_const(eval_ctx),
40 | lineno=node.lineno,
41 | environment=self.environment)
42 | except nodes.Impossible:
43 | return node
44 |
45 | visit_Add = visit_Sub = visit_Mul = visit_Div = visit_FloorDiv = \
46 | visit_Pow = visit_Mod = visit_And = visit_Or = visit_Pos = visit_Neg = \
47 | visit_Not = visit_Compare = visit_Getitem = visit_Getattr = visit_Call = \
48 | visit_Filter = visit_Test = visit_CondExpr = fold
49 | del fold
50 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/_compat.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/_compat.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/_constants.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/_constants.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/_native.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/__pycache__/_native.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/_compat.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | markupsafe._compat
4 | ~~~~~~~~~~~~~~~~~~
5 |
6 | :copyright: 2010 Pallets
7 | :license: BSD-3-Clause
8 | """
9 | import sys
10 |
11 | PY2 = sys.version_info[0] == 2
12 |
13 | if not PY2:
14 | text_type = str
15 | string_types = (str,)
16 | unichr = chr
17 | int_types = (int,)
18 |
19 | def iteritems(x):
20 | return iter(x.items())
21 |
22 | from collections.abc import Mapping
23 |
24 | else:
25 | text_type = unicode
26 | string_types = (str, unicode)
27 | unichr = unichr
28 | int_types = (int, long)
29 |
30 | def iteritems(x):
31 | return x.iteritems()
32 |
33 | from collections import Mapping
34 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/_speedups.cpython-36m-x86_64-linux-gnu.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/markupsafe/_speedups.cpython-36m-x86_64-linux-gnu.so
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/dependency_links.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/entry_points.txt:
--------------------------------------------------------------------------------
1 | [console_scripts]
2 | pip = pip._internal:main
3 | pip3 = pip._internal:main
4 | pip3.6 = pip._internal:main
5 |
6 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/not-zip-safe:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/top_level.txt:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__init__.py:
--------------------------------------------------------------------------------
1 | __version__ = "19.0.3"
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__main__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | import os
4 | import sys
5 |
6 | # If we are running from a wheel, add the wheel to sys.path
7 | # This allows the usage python pip-*.whl/pip install pip-*.whl
8 | if __package__ == '':
9 | # __file__ is pip-*.whl/pip/__main__.py
10 | # first dirname call strips of '/__main__.py', second strips off '/pip'
11 | # Resulting path is the name of the wheel itself
12 | # Add that to sys.path so we can import pip
13 | path = os.path.dirname(os.path.dirname(__file__))
14 | sys.path.insert(0, path)
15 |
16 | from pip._internal import main as _main # isort:skip # noqa
17 |
18 | if __name__ == '__main__':
19 | sys.exit(_main())
20 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/__init__.py:
--------------------------------------------------------------------------------
1 | """Subpackage containing all of pip's command line interface related code
2 | """
3 |
4 | # This file intentionally does not import submodules
5 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/status_codes.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | SUCCESS = 0
4 | ERROR = 1
5 | UNKNOWN_ERROR = 2
6 | VIRTUALENV_NOT_FOUND = 3
7 | PREVIOUS_BUILD_DIR_ERROR = 4
8 | NO_MATCHES_FOUND = 23
9 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/check.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 | from pip._internal.cli.base_command import Command
4 | from pip._internal.operations.check import (
5 | check_package_set, create_package_set_from_installed,
6 | )
7 |
8 | logger = logging.getLogger(__name__)
9 |
10 |
11 | class CheckCommand(Command):
12 | """Verify installed packages have compatible dependencies."""
13 | name = 'check'
14 | usage = """
15 | %prog [options]"""
16 | summary = 'Verify installed packages have compatible dependencies.'
17 |
18 | def run(self, options, args):
19 | package_set, parsing_probs = create_package_set_from_installed()
20 | missing, conflicting = check_package_set(package_set)
21 |
22 | for project_name in missing:
23 | version = package_set[project_name].version
24 | for dependency in missing[project_name]:
25 | logger.info(
26 | "%s %s requires %s, which is not installed.",
27 | project_name, version, dependency[0],
28 | )
29 |
30 | for project_name in conflicting:
31 | version = package_set[project_name].version
32 | for dep_name, dep_version, req in conflicting[project_name]:
33 | logger.info(
34 | "%s %s has requirement %s, but you have %s %s.",
35 | project_name, version, req, dep_name, dep_version,
36 | )
37 |
38 | if missing or conflicting or parsing_probs:
39 | return 1
40 | else:
41 | logger.info("No broken requirements found.")
42 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/help.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | from pip._internal.cli.base_command import Command
4 | from pip._internal.cli.status_codes import SUCCESS
5 | from pip._internal.exceptions import CommandError
6 |
7 |
8 | class HelpCommand(Command):
9 | """Show help for commands"""
10 | name = 'help'
11 | usage = """
12 | %prog """
13 | summary = 'Show help for commands.'
14 | ignore_require_venv = True
15 |
16 | def run(self, options, args):
17 | from pip._internal.commands import commands_dict, get_similar_commands
18 |
19 | try:
20 | # 'pip help' with no args is handled by pip.__init__.parseopt()
21 | cmd_name = args[0] # the command we need help for
22 | except IndexError:
23 | return SUCCESS
24 |
25 | if cmd_name not in commands_dict:
26 | guess = get_similar_commands(cmd_name)
27 |
28 | msg = ['unknown command "%s"' % cmd_name]
29 | if guess:
30 | msg.append('maybe you meant "%s"' % guess)
31 |
32 | raise CommandError(' - '.join(msg))
33 |
34 | command = commands_dict[cmd_name]()
35 | command.parser.print_help()
36 |
37 | return SUCCESS
38 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/__init__.py:
--------------------------------------------------------------------------------
1 | """A package that contains models that represent entities.
2 | """
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/candidate.py:
--------------------------------------------------------------------------------
1 | from pip._vendor.packaging.version import parse as parse_version
2 |
3 | from pip._internal.utils.models import KeyBasedCompareMixin
4 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING
5 |
6 | if MYPY_CHECK_RUNNING:
7 | from pip._vendor.packaging.version import _BaseVersion # noqa: F401
8 | from pip._internal.models.link import Link # noqa: F401
9 | from typing import Any, Union # noqa: F401
10 |
11 |
12 | class InstallationCandidate(KeyBasedCompareMixin):
13 | """Represents a potential "candidate" for installation.
14 | """
15 |
16 | def __init__(self, project, version, location):
17 | # type: (Any, str, Link) -> None
18 | self.project = project
19 | self.version = parse_version(version) # type: _BaseVersion
20 | self.location = location
21 |
22 | super(InstallationCandidate, self).__init__(
23 | key=(self.project, self.version, self.location),
24 | defining_class=InstallationCandidate
25 | )
26 |
27 | def __repr__(self):
28 | # type: () -> str
29 | return "".format(
30 | self.project, self.version, self.location,
31 | )
32 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/index.py:
--------------------------------------------------------------------------------
1 | from pip._vendor.six.moves.urllib import parse as urllib_parse
2 |
3 |
4 | class PackageIndex(object):
5 | """Represents a Package Index and provides easier access to endpoints
6 | """
7 |
8 | def __init__(self, url, file_storage_domain):
9 | # type: (str, str) -> None
10 | super(PackageIndex, self).__init__()
11 | self.url = url
12 | self.netloc = urllib_parse.urlsplit(url).netloc
13 | self.simple_url = self._url_for_path('simple')
14 | self.pypi_url = self._url_for_path('pypi')
15 |
16 | # This is part of a temporary hack used to block installs of PyPI
17 | # packages which depend on external urls only necessary until PyPI can
18 | # block such packages themselves
19 | self.file_storage_domain = file_storage_domain
20 |
21 | def _url_for_path(self, path):
22 | # type: (str) -> str
23 | return urllib_parse.urljoin(self.url, path)
24 |
25 |
26 | PyPI = PackageIndex(
27 | 'https://pypi.org/', file_storage_domain='files.pythonhosted.org'
28 | )
29 | TestPyPI = PackageIndex(
30 | 'https://test.pypi.org/', file_storage_domain='test-files.pythonhosted.org'
31 | )
32 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/__init__.py
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/__init__.py
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/encoding.py:
--------------------------------------------------------------------------------
1 | import codecs
2 | import locale
3 | import re
4 | import sys
5 |
6 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING
7 |
8 | if MYPY_CHECK_RUNNING:
9 | from typing import List, Tuple, Text # noqa: F401
10 |
11 | BOMS = [
12 | (codecs.BOM_UTF8, 'utf8'),
13 | (codecs.BOM_UTF16, 'utf16'),
14 | (codecs.BOM_UTF16_BE, 'utf16-be'),
15 | (codecs.BOM_UTF16_LE, 'utf16-le'),
16 | (codecs.BOM_UTF32, 'utf32'),
17 | (codecs.BOM_UTF32_BE, 'utf32-be'),
18 | (codecs.BOM_UTF32_LE, 'utf32-le'),
19 | ] # type: List[Tuple[bytes, Text]]
20 |
21 | ENCODING_RE = re.compile(br'coding[:=]\s*([-\w.]+)')
22 |
23 |
24 | def auto_decode(data):
25 | # type: (bytes) -> Text
26 | """Check a bytes string for a BOM to correctly detect the encoding
27 |
28 | Fallback to locale.getpreferredencoding(False) like open() on Python3"""
29 | for bom, encoding in BOMS:
30 | if data.startswith(bom):
31 | return data[len(bom):].decode(encoding)
32 | # Lets check the first two lines as in PEP263
33 | for line in data.split(b'\n')[:2]:
34 | if line[0:1] == b'#' and ENCODING_RE.search(line):
35 | encoding = ENCODING_RE.search(line).groups()[0].decode('ascii')
36 | return data.decode(encoding)
37 | return data.decode(
38 | locale.getpreferredencoding(False) or sys.getdefaultencoding(),
39 | )
40 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/filesystem.py:
--------------------------------------------------------------------------------
1 | import os
2 | import os.path
3 |
4 | from pip._internal.utils.compat import get_path_uid
5 |
6 |
7 | def check_path_owner(path):
8 | # type: (str) -> bool
9 | # If we don't have a way to check the effective uid of this process, then
10 | # we'll just assume that we own the directory.
11 | if not hasattr(os, "geteuid"):
12 | return True
13 |
14 | previous = None
15 | while path != previous:
16 | if os.path.lexists(path):
17 | # Check if path is writable by current user.
18 | if os.geteuid() == 0:
19 | # Special handling for root user in order to handle properly
20 | # cases where users use sudo without -H flag.
21 | try:
22 | path_uid = get_path_uid(path)
23 | except OSError:
24 | return False
25 | return path_uid == 0
26 | else:
27 | return os.access(path, os.W_OK)
28 | else:
29 | previous, path = path, os.path.dirname(path)
30 | return False # assume we don't own the path
31 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/models.py:
--------------------------------------------------------------------------------
1 | """Utilities for defining models
2 | """
3 |
4 | import operator
5 |
6 |
7 | class KeyBasedCompareMixin(object):
8 | """Provides comparision capabilities that is based on a key
9 | """
10 |
11 | def __init__(self, key, defining_class):
12 | self._compare_key = key
13 | self._defining_class = defining_class
14 |
15 | def __hash__(self):
16 | return hash(self._compare_key)
17 |
18 | def __lt__(self, other):
19 | return self._compare(other, operator.__lt__)
20 |
21 | def __le__(self, other):
22 | return self._compare(other, operator.__le__)
23 |
24 | def __gt__(self, other):
25 | return self._compare(other, operator.__gt__)
26 |
27 | def __ge__(self, other):
28 | return self._compare(other, operator.__ge__)
29 |
30 | def __eq__(self, other):
31 | return self._compare(other, operator.__eq__)
32 |
33 | def __ne__(self, other):
34 | return self._compare(other, operator.__ne__)
35 |
36 | def _compare(self, other, method):
37 | if not isinstance(other, self._defining_class):
38 | return NotImplemented
39 |
40 | return method(self._compare_key, other._compare_key)
41 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/setuptools_build.py:
--------------------------------------------------------------------------------
1 | # Shim to wrap setup.py invocation with setuptools
2 | SETUPTOOLS_SHIM = (
3 | "import setuptools, tokenize;__file__=%r;"
4 | "f=getattr(tokenize, 'open', open)(__file__);"
5 | "code=f.read().replace('\\r\\n', '\\n');"
6 | "f.close();"
7 | "exec(compile(code, __file__, 'exec'))"
8 | )
9 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/typing.py:
--------------------------------------------------------------------------------
1 | """For neatly implementing static typing in pip.
2 |
3 | `mypy` - the static type analysis tool we use - uses the `typing` module, which
4 | provides core functionality fundamental to mypy's functioning.
5 |
6 | Generally, `typing` would be imported at runtime and used in that fashion -
7 | it acts as a no-op at runtime and does not have any run-time overhead by
8 | design.
9 |
10 | As it turns out, `typing` is not vendorable - it uses separate sources for
11 | Python 2/Python 3. Thus, this codebase can not expect it to be present.
12 | To work around this, mypy allows the typing import to be behind a False-y
13 | optional to prevent it from running at runtime and type-comments can be used
14 | to remove the need for the types to be accessible directly during runtime.
15 |
16 | This module provides the False-y guard in a nicely named fashion so that a
17 | curious maintainer can reach here to read this.
18 |
19 | In pip, all static-typing related imports should be guarded as follows:
20 |
21 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING
22 |
23 | if MYPY_CHECK_RUNNING:
24 | from typing import ... # noqa: F401
25 |
26 | Ref: https://github.com/python/mypy/issues/3216
27 | """
28 |
29 | MYPY_CHECK_RUNNING = False
30 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/__init__.py:
--------------------------------------------------------------------------------
1 | """CacheControl import Interface.
2 |
3 | Make it easy to import from cachecontrol without long namespaces.
4 | """
5 | __author__ = "Eric Larson"
6 | __email__ = "eric@ionrock.org"
7 | __version__ = "0.12.5"
8 |
9 | from .wrapper import CacheControl
10 | from .adapter import CacheControlAdapter
11 | from .controller import CacheController
12 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/_cmd.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 | from pip._vendor import requests
4 |
5 | from pip._vendor.cachecontrol.adapter import CacheControlAdapter
6 | from pip._vendor.cachecontrol.cache import DictCache
7 | from pip._vendor.cachecontrol.controller import logger
8 |
9 | from argparse import ArgumentParser
10 |
11 |
12 | def setup_logging():
13 | logger.setLevel(logging.DEBUG)
14 | handler = logging.StreamHandler()
15 | logger.addHandler(handler)
16 |
17 |
18 | def get_session():
19 | adapter = CacheControlAdapter(
20 | DictCache(), cache_etags=True, serializer=None, heuristic=None
21 | )
22 | sess = requests.Session()
23 | sess.mount("http://", adapter)
24 | sess.mount("https://", adapter)
25 |
26 | sess.cache_controller = adapter.controller
27 | return sess
28 |
29 |
30 | def get_args():
31 | parser = ArgumentParser()
32 | parser.add_argument("url", help="The URL to try and cache")
33 | return parser.parse_args()
34 |
35 |
36 | def main(args=None):
37 | args = get_args()
38 | sess = get_session()
39 |
40 | # Make a request to get a response
41 | resp = sess.get(args.url)
42 |
43 | # Turn on logging
44 | setup_logging()
45 |
46 | # try setting the cache
47 | sess.cache_controller.cache_response(resp.request, resp.raw)
48 |
49 | # Now try to get it
50 | if sess.cache_controller.cached_request(resp.request):
51 | print("Cached!")
52 | else:
53 | print("Not cached :(")
54 |
55 |
56 | if __name__ == "__main__":
57 | main()
58 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/cache.py:
--------------------------------------------------------------------------------
1 | """
2 | The cache object API for implementing caches. The default is a thread
3 | safe in-memory dictionary.
4 | """
5 | from threading import Lock
6 |
7 |
8 | class BaseCache(object):
9 |
10 | def get(self, key):
11 | raise NotImplementedError()
12 |
13 | def set(self, key, value):
14 | raise NotImplementedError()
15 |
16 | def delete(self, key):
17 | raise NotImplementedError()
18 |
19 | def close(self):
20 | pass
21 |
22 |
23 | class DictCache(BaseCache):
24 |
25 | def __init__(self, init_dict=None):
26 | self.lock = Lock()
27 | self.data = init_dict or {}
28 |
29 | def get(self, key):
30 | return self.data.get(key, None)
31 |
32 | def set(self, key, value):
33 | with self.lock:
34 | self.data.update({key: value})
35 |
36 | def delete(self, key):
37 | with self.lock:
38 | if key in self.data:
39 | self.data.pop(key)
40 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/__init__.py:
--------------------------------------------------------------------------------
1 | from .file_cache import FileCache # noqa
2 | from .redis_cache import RedisCache # noqa
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/redis_cache.py:
--------------------------------------------------------------------------------
1 | from __future__ import division
2 |
3 | from datetime import datetime
4 | from pip._vendor.cachecontrol.cache import BaseCache
5 |
6 |
7 | class RedisCache(BaseCache):
8 |
9 | def __init__(self, conn):
10 | self.conn = conn
11 |
12 | def get(self, key):
13 | return self.conn.get(key)
14 |
15 | def set(self, key, value, expires=None):
16 | if not expires:
17 | self.conn.set(key, value)
18 | else:
19 | expires = expires - datetime.utcnow()
20 | self.conn.setex(key, int(expires.total_seconds()), value)
21 |
22 | def delete(self, key):
23 | self.conn.delete(key)
24 |
25 | def clear(self):
26 | """Helper for clearing all the keys in a database. Use with
27 | caution!"""
28 | for key in self.conn.keys():
29 | self.conn.delete(key)
30 |
31 | def close(self):
32 | """Redis uses connection pooling, no need to close the connection."""
33 | pass
34 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/compat.py:
--------------------------------------------------------------------------------
1 | try:
2 | from urllib.parse import urljoin
3 | except ImportError:
4 | from urlparse import urljoin
5 |
6 |
7 | try:
8 | import cPickle as pickle
9 | except ImportError:
10 | import pickle
11 |
12 |
13 | # Handle the case where the requests module has been patched to not have
14 | # urllib3 bundled as part of its source.
15 | try:
16 | from pip._vendor.requests.packages.urllib3.response import HTTPResponse
17 | except ImportError:
18 | from pip._vendor.urllib3.response import HTTPResponse
19 |
20 | try:
21 | from pip._vendor.requests.packages.urllib3.util import is_fp_closed
22 | except ImportError:
23 | from pip._vendor.urllib3.util import is_fp_closed
24 |
25 | # Replicate some six behaviour
26 | try:
27 | text_type = unicode
28 | except NameError:
29 | text_type = str
30 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/wrapper.py:
--------------------------------------------------------------------------------
1 | from .adapter import CacheControlAdapter
2 | from .cache import DictCache
3 |
4 |
5 | def CacheControl(
6 | sess,
7 | cache=None,
8 | cache_etags=True,
9 | serializer=None,
10 | heuristic=None,
11 | controller_class=None,
12 | adapter_class=None,
13 | cacheable_methods=None,
14 | ):
15 |
16 | cache = cache or DictCache()
17 | adapter_class = adapter_class or CacheControlAdapter
18 | adapter = adapter_class(
19 | cache,
20 | cache_etags=cache_etags,
21 | serializer=serializer,
22 | heuristic=heuristic,
23 | controller_class=controller_class,
24 | cacheable_methods=cacheable_methods,
25 | )
26 | sess.mount("http://", adapter)
27 | sess.mount("https://", adapter)
28 |
29 | return sess
30 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__init__.py:
--------------------------------------------------------------------------------
1 | from .core import where
2 |
3 | __version__ = "2018.11.29"
4 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__main__.py:
--------------------------------------------------------------------------------
1 | from pip._vendor.certifi import where
2 | print(where())
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/core.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | """
5 | certifi.py
6 | ~~~~~~~~~~
7 |
8 | This module returns the installation location of cacert.pem.
9 | """
10 | import os
11 |
12 |
13 | def where():
14 | f = os.path.dirname(__file__)
15 |
16 | return os.path.join(f, 'cacert.pem')
17 |
18 |
19 | if __name__ == '__main__':
20 | print(where())
21 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/__init__.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # This library is free software; you can redistribute it and/or
3 | # modify it under the terms of the GNU Lesser General Public
4 | # License as published by the Free Software Foundation; either
5 | # version 2.1 of the License, or (at your option) any later version.
6 | #
7 | # This library is distributed in the hope that it will be useful,
8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 | # Lesser General Public License for more details.
11 | #
12 | # You should have received a copy of the GNU Lesser General Public
13 | # License along with this library; if not, write to the Free Software
14 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
15 | # 02110-1301 USA
16 | ######################### END LICENSE BLOCK #########################
17 |
18 |
19 | from .compat import PY2, PY3
20 | from .universaldetector import UniversalDetector
21 | from .version import __version__, VERSION
22 |
23 |
24 | def detect(byte_str):
25 | """
26 | Detect the encoding of the given byte string.
27 |
28 | :param byte_str: The byte sequence to examine.
29 | :type byte_str: ``bytes`` or ``bytearray``
30 | """
31 | if not isinstance(byte_str, bytearray):
32 | if not isinstance(byte_str, bytes):
33 | raise TypeError('Expected object of type bytes or bytearray, got: '
34 | '{0}'.format(type(byte_str)))
35 | else:
36 | byte_str = bytearray(byte_str)
37 | detector = UniversalDetector()
38 | detector.feed(byte_str)
39 | return detector.close()
40 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/compat.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # Contributor(s):
3 | # Dan Blanchard
4 | # Ian Cordasco
5 | #
6 | # This library is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU Lesser General Public
8 | # License as published by the Free Software Foundation; either
9 | # version 2.1 of the License, or (at your option) any later version.
10 | #
11 | # This library is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | # Lesser General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU Lesser General Public
17 | # License along with this library; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19 | # 02110-1301 USA
20 | ######################### END LICENSE BLOCK #########################
21 |
22 | import sys
23 |
24 |
25 | if sys.version_info < (3, 0):
26 | PY2 = True
27 | PY3 = False
28 | base_str = (str, unicode)
29 | text_type = unicode
30 | else:
31 | PY2 = False
32 | PY3 = True
33 | base_str = (bytes, str)
34 | text_type = str
35 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/version.py:
--------------------------------------------------------------------------------
1 | """
2 | This module exists only to simplify retrieving the version number of chardet
3 | from within setup.py and from chardet subpackages.
4 |
5 | :author: Dan Blanchard (dan.blanchard@gmail.com)
6 | """
7 |
8 | __version__ = "3.0.4"
9 | VERSION = __version__.split('.')
10 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
2 | from .initialise import init, deinit, reinit, colorama_text
3 | from .ansi import Fore, Back, Style, Cursor
4 | from .ansitowin32 import AnsiToWin32
5 |
6 | __version__ = '0.4.1'
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Copyright (C) 2012-2017 Vinay Sajip.
4 | # Licensed to the Python Software Foundation under a contributor agreement.
5 | # See LICENSE.txt and CONTRIBUTORS.txt.
6 | #
7 | import logging
8 |
9 | __version__ = '0.2.8'
10 |
11 | class DistlibException(Exception):
12 | pass
13 |
14 | try:
15 | from logging import NullHandler
16 | except ImportError: # pragma: no cover
17 | class NullHandler(logging.Handler):
18 | def handle(self, record): pass
19 | def emit(self, record): pass
20 | def createLock(self): self.lock = None
21 |
22 | logger = logging.getLogger(__name__)
23 | logger.addHandler(NullHandler())
24 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/__init__.py:
--------------------------------------------------------------------------------
1 | """Modules copied from Python 3 standard libraries, for internal use only.
2 |
3 | Individual classes and functions are found in d2._backport.misc. Intended
4 | usage is to always import things missing from 3.1 from that module: the
5 | built-in/stdlib objects will be used if found.
6 | """
7 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/misc.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Copyright (C) 2012 The Python Software Foundation.
4 | # See LICENSE.txt and CONTRIBUTORS.txt.
5 | #
6 | """Backports for individual classes and functions."""
7 |
8 | import os
9 | import sys
10 |
11 | __all__ = ['cache_from_source', 'callable', 'fsencode']
12 |
13 |
14 | try:
15 | from imp import cache_from_source
16 | except ImportError:
17 | def cache_from_source(py_file, debug=__debug__):
18 | ext = debug and 'c' or 'o'
19 | return py_file + ext
20 |
21 |
22 | try:
23 | callable = callable
24 | except NameError:
25 | from collections import Callable
26 |
27 | def callable(obj):
28 | return isinstance(obj, Callable)
29 |
30 |
31 | try:
32 | fsencode = os.fsencode
33 | except AttributeError:
34 | def fsencode(filename):
35 | if isinstance(filename, bytes):
36 | return filename
37 | elif isinstance(filename, str):
38 | return filename.encode(sys.getfilesystemencoding())
39 | else:
40 | raise TypeError("expect bytes or str, not %s" %
41 | type(filename).__name__)
42 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t32.exe
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t64.exe
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w32.exe
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w64.exe
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | HTML parsing library based on the `WHATWG HTML specification
3 | `_. The parser is designed to be compatible with
4 | existing HTML found in the wild and implements well-defined error recovery that
5 | is largely compatible with modern desktop web browsers.
6 |
7 | Example usage::
8 |
9 | from pip._vendor import html5lib
10 | with open("my_document.html", "rb") as f:
11 | tree = html5lib.parse(f)
12 |
13 | For convenience, this module re-exports the following names:
14 |
15 | * :func:`~.html5parser.parse`
16 | * :func:`~.html5parser.parseFragment`
17 | * :class:`~.html5parser.HTMLParser`
18 | * :func:`~.treebuilders.getTreeBuilder`
19 | * :func:`~.treewalkers.getTreeWalker`
20 | * :func:`~.serializer.serialize`
21 | """
22 |
23 | from __future__ import absolute_import, division, unicode_literals
24 |
25 | from .html5parser import HTMLParser, parse, parseFragment
26 | from .treebuilders import getTreeBuilder
27 | from .treewalkers import getTreeWalker
28 | from .serializer import serialize
29 |
30 | __all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder",
31 | "getTreeWalker", "serialize"]
32 |
33 | # this has to be at the top level, see how setup.py parses this
34 | #: Distribution version number.
35 | __version__ = "1.0.1"
36 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from .py import Trie as PyTrie
4 |
5 | Trie = PyTrie
6 |
7 | # pylint:disable=wrong-import-position
8 | try:
9 | from .datrie import Trie as DATrie
10 | except ImportError:
11 | pass
12 | else:
13 | Trie = DATrie
14 | # pylint:enable=wrong-import-position
15 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/_base.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from collections import Mapping
4 |
5 |
6 | class Trie(Mapping):
7 | """Abstract base class for tries"""
8 |
9 | def keys(self, prefix=None):
10 | # pylint:disable=arguments-differ
11 | keys = super(Trie, self).keys()
12 |
13 | if prefix is None:
14 | return set(keys)
15 |
16 | return {x for x in keys if x.startswith(prefix)}
17 |
18 | def has_keys_with_prefix(self, prefix):
19 | for key in self.keys():
20 | if key.startswith(prefix):
21 | return True
22 |
23 | return False
24 |
25 | def longest_prefix(self, prefix):
26 | if prefix in self:
27 | return prefix
28 |
29 | for i in range(1, len(prefix) + 1):
30 | if prefix[:-i] in self:
31 | return prefix[:-i]
32 |
33 | raise KeyError(prefix)
34 |
35 | def longest_prefix_item(self, prefix):
36 | lprefix = self.longest_prefix(prefix)
37 | return (lprefix, self[lprefix])
38 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/datrie.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from datrie import Trie as DATrie
4 | from pip._vendor.six import text_type
5 |
6 | from ._base import Trie as ABCTrie
7 |
8 |
9 | class Trie(ABCTrie):
10 | def __init__(self, data):
11 | chars = set()
12 | for key in data.keys():
13 | if not isinstance(key, text_type):
14 | raise TypeError("All keys must be strings")
15 | for char in key:
16 | chars.add(char)
17 |
18 | self._data = DATrie("".join(chars))
19 | for key, value in data.items():
20 | self._data[key] = value
21 |
22 | def __contains__(self, key):
23 | return key in self._data
24 |
25 | def __len__(self):
26 | return len(self._data)
27 |
28 | def __iter__(self):
29 | raise NotImplementedError()
30 |
31 | def __getitem__(self, key):
32 | return self._data[key]
33 |
34 | def keys(self, prefix=None):
35 | return self._data.keys(prefix)
36 |
37 | def has_keys_with_prefix(self, prefix):
38 | return self._data.has_keys_with_prefix(prefix)
39 |
40 | def longest_prefix(self, prefix):
41 | return self._data.longest_prefix(prefix)
42 |
43 | def longest_prefix_item(self, prefix):
44 | return self._data.longest_prefix_item(prefix)
45 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/__init__.py
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from . import base
4 |
5 | from collections import OrderedDict
6 |
7 |
8 | def _attr_key(attr):
9 | """Return an appropriate key for an attribute for sorting
10 |
11 | Attributes have a namespace that can be either ``None`` or a string. We
12 | can't compare the two because they're different types, so we convert
13 | ``None`` to an empty string first.
14 |
15 | """
16 | return (attr[0][0] or ''), attr[0][1]
17 |
18 |
19 | class Filter(base.Filter):
20 | """Alphabetizes attributes for elements"""
21 | def __iter__(self):
22 | for token in base.Filter.__iter__(self):
23 | if token["type"] in ("StartTag", "EmptyTag"):
24 | attrs = OrderedDict()
25 | for name, value in sorted(token["data"].items(),
26 | key=_attr_key):
27 | attrs[name] = value
28 | token["data"] = attrs
29 | yield token
30 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/base.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 |
4 | class Filter(object):
5 | def __init__(self, source):
6 | self.source = source
7 |
8 | def __iter__(self):
9 | return iter(self.source)
10 |
11 | def __getattr__(self, name):
12 | return getattr(self.source, name)
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/whitespace.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | import re
4 |
5 | from . import base
6 | from ..constants import rcdataElements, spaceCharacters
7 | spaceCharacters = "".join(spaceCharacters)
8 |
9 | SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)
10 |
11 |
12 | class Filter(base.Filter):
13 | """Collapses whitespace except in pre, textarea, and script elements"""
14 | spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements))
15 |
16 | def __iter__(self):
17 | preserve = 0
18 | for token in base.Filter.__iter__(self):
19 | type = token["type"]
20 | if type == "StartTag" \
21 | and (preserve or token["name"] in self.spacePreserveElements):
22 | preserve += 1
23 |
24 | elif type == "EndTag" and preserve:
25 | preserve -= 1
26 |
27 | elif not preserve and type == "SpaceCharacters" and token["data"]:
28 | # Test on token["data"] above to not introduce spaces where there were not
29 | token["data"] = " "
30 |
31 | elif not preserve and type == "Characters":
32 | token["data"] = collapse_spaces(token["data"])
33 |
34 | yield token
35 |
36 |
37 | def collapse_spaces(text):
38 | return SPACES_REGEX.sub(' ', text)
39 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/__init__.py:
--------------------------------------------------------------------------------
1 | """Tree adapters let you convert from one tree structure to another
2 |
3 | Example:
4 |
5 | .. code-block:: python
6 |
7 | from pip._vendor import html5lib
8 | from pip._vendor.html5lib.treeadapters import genshi
9 |
10 | doc = 'Hi!'
11 | treebuilder = html5lib.getTreeBuilder('etree')
12 | parser = html5lib.HTMLParser(tree=treebuilder)
13 | tree = parser.parse(doc)
14 | TreeWalker = html5lib.getTreeWalker('etree')
15 |
16 | genshi_tree = genshi.to_genshi(TreeWalker(tree))
17 |
18 | """
19 | from __future__ import absolute_import, division, unicode_literals
20 |
21 | from . import sax
22 |
23 | __all__ = ["sax"]
24 |
25 | try:
26 | from . import genshi # noqa
27 | except ImportError:
28 | pass
29 | else:
30 | __all__.append("genshi")
31 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/dom.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from xml.dom import Node
4 |
5 | from . import base
6 |
7 |
8 | class TreeWalker(base.NonRecursiveTreeWalker):
9 | def getNodeDetails(self, node):
10 | if node.nodeType == Node.DOCUMENT_TYPE_NODE:
11 | return base.DOCTYPE, node.name, node.publicId, node.systemId
12 |
13 | elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE):
14 | return base.TEXT, node.nodeValue
15 |
16 | elif node.nodeType == Node.ELEMENT_NODE:
17 | attrs = {}
18 | for attr in list(node.attributes.keys()):
19 | attr = node.getAttributeNode(attr)
20 | if attr.namespaceURI:
21 | attrs[(attr.namespaceURI, attr.localName)] = attr.value
22 | else:
23 | attrs[(None, attr.name)] = attr.value
24 | return (base.ELEMENT, node.namespaceURI, node.nodeName,
25 | attrs, node.hasChildNodes())
26 |
27 | elif node.nodeType == Node.COMMENT_NODE:
28 | return base.COMMENT, node.nodeValue
29 |
30 | elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE):
31 | return (base.DOCUMENT,)
32 |
33 | else:
34 | return base.UNKNOWN, node.nodeType
35 |
36 | def getFirstChild(self, node):
37 | return node.firstChild
38 |
39 | def getNextSibling(self, node):
40 | return node.nextSibling
41 |
42 | def getParentNode(self, node):
43 | return node.parentNode
44 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/__init__.py:
--------------------------------------------------------------------------------
1 | from .package_data import __version__
2 | from .core import *
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/compat.py:
--------------------------------------------------------------------------------
1 | from .core import *
2 | from .codec import *
3 |
4 | def ToASCII(label):
5 | return encode(label)
6 |
7 | def ToUnicode(label):
8 | return decode(label)
9 |
10 | def nameprep(s):
11 | raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol")
12 |
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/package_data.py:
--------------------------------------------------------------------------------
1 | __version__ = '2.8'
2 |
3 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/_version.py:
--------------------------------------------------------------------------------
1 | version = (0, 5, 6)
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/exceptions.py:
--------------------------------------------------------------------------------
1 | class UnpackException(Exception):
2 | """Deprecated. Use Exception instead to catch all exception during unpacking."""
3 |
4 |
5 | class BufferFull(UnpackException):
6 | pass
7 |
8 |
9 | class OutOfData(UnpackException):
10 | pass
11 |
12 |
13 | class UnpackValueError(UnpackException, ValueError):
14 | """Deprecated. Use ValueError instead."""
15 |
16 |
17 | class ExtraData(UnpackValueError):
18 | def __init__(self, unpacked, extra):
19 | self.unpacked = unpacked
20 | self.extra = extra
21 |
22 | def __str__(self):
23 | return "unpack(b) received extra data."
24 |
25 |
26 | class PackException(Exception):
27 | """Deprecated. Use Exception instead to catch all exception during packing."""
28 |
29 |
30 | class PackValueError(PackException, ValueError):
31 | """PackValueError is raised when type of input data is supported but it's value is unsupported.
32 |
33 | Deprecated. Use ValueError instead.
34 | """
35 |
36 |
37 | class PackOverflowError(PackValueError, OverflowError):
38 | """PackOverflowError is raised when integer value is out of range of msgpack support [-2**31, 2**32).
39 |
40 | Deprecated. Use ValueError instead.
41 | """
42 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__about__.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | __all__ = [
7 | "__title__",
8 | "__summary__",
9 | "__uri__",
10 | "__version__",
11 | "__author__",
12 | "__email__",
13 | "__license__",
14 | "__copyright__",
15 | ]
16 |
17 | __title__ = "packaging"
18 | __summary__ = "Core utilities for Python packages"
19 | __uri__ = "https://github.com/pypa/packaging"
20 |
21 | __version__ = "19.0"
22 |
23 | __author__ = "Donald Stufft and individual contributors"
24 | __email__ = "donald@stufft.io"
25 |
26 | __license__ = "BSD or Apache License, Version 2.0"
27 | __copyright__ = "Copyright 2014-2019 %s" % __author__
28 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__init__.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | from .__about__ import (
7 | __author__,
8 | __copyright__,
9 | __email__,
10 | __license__,
11 | __summary__,
12 | __title__,
13 | __uri__,
14 | __version__,
15 | )
16 |
17 | __all__ = [
18 | "__title__",
19 | "__summary__",
20 | "__uri__",
21 | "__version__",
22 | "__author__",
23 | "__email__",
24 | "__license__",
25 | "__copyright__",
26 | ]
27 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_compat.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | import sys
7 |
8 |
9 | PY2 = sys.version_info[0] == 2
10 | PY3 = sys.version_info[0] == 3
11 |
12 | # flake8: noqa
13 |
14 | if PY3:
15 | string_types = (str,)
16 | else:
17 | string_types = (basestring,)
18 |
19 |
20 | def with_metaclass(meta, *bases):
21 | """
22 | Create a base class with a metaclass.
23 | """
24 | # This requires a bit of explanation: the basic idea is to make a dummy
25 | # metaclass for one level of class instantiation that replaces itself with
26 | # the actual metaclass.
27 | class metaclass(meta):
28 | def __new__(cls, name, this_bases, d):
29 | return meta(name, bases, d)
30 |
31 | return type.__new__(metaclass, "temporary_class", (), {})
32 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_structures.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 |
7 | class Infinity(object):
8 | def __repr__(self):
9 | return "Infinity"
10 |
11 | def __hash__(self):
12 | return hash(repr(self))
13 |
14 | def __lt__(self, other):
15 | return False
16 |
17 | def __le__(self, other):
18 | return False
19 |
20 | def __eq__(self, other):
21 | return isinstance(other, self.__class__)
22 |
23 | def __ne__(self, other):
24 | return not isinstance(other, self.__class__)
25 |
26 | def __gt__(self, other):
27 | return True
28 |
29 | def __ge__(self, other):
30 | return True
31 |
32 | def __neg__(self):
33 | return NegativeInfinity
34 |
35 |
36 | Infinity = Infinity()
37 |
38 |
39 | class NegativeInfinity(object):
40 | def __repr__(self):
41 | return "-Infinity"
42 |
43 | def __hash__(self):
44 | return hash(repr(self))
45 |
46 | def __lt__(self, other):
47 | return True
48 |
49 | def __le__(self, other):
50 | return True
51 |
52 | def __eq__(self, other):
53 | return isinstance(other, self.__class__)
54 |
55 | def __ne__(self, other):
56 | return not isinstance(other, self.__class__)
57 |
58 | def __gt__(self, other):
59 | return False
60 |
61 | def __ge__(self, other):
62 | return False
63 |
64 | def __neg__(self):
65 | return Infinity
66 |
67 |
68 | NegativeInfinity = NegativeInfinity()
69 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/utils.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | import re
7 |
8 | from .version import InvalidVersion, Version
9 |
10 |
11 | _canonicalize_regex = re.compile(r"[-_.]+")
12 |
13 |
14 | def canonicalize_name(name):
15 | # This is taken from PEP 503.
16 | return _canonicalize_regex.sub("-", name).lower()
17 |
18 |
19 | def canonicalize_version(version):
20 | """
21 | This is very similar to Version.__str__, but has one subtle differences
22 | with the way it handles the release segment.
23 | """
24 |
25 | try:
26 | version = Version(version)
27 | except InvalidVersion:
28 | # Legacy versions cannot be normalized
29 | return version
30 |
31 | parts = []
32 |
33 | # Epoch
34 | if version.epoch != 0:
35 | parts.append("{0}!".format(version.epoch))
36 |
37 | # Release segment
38 | # NB: This strips trailing '.0's to normalize
39 | parts.append(re.sub(r"(\.0)+$", "", ".".join(str(x) for x in version.release)))
40 |
41 | # Pre-release
42 | if version.pre is not None:
43 | parts.append("".join(str(x) for x in version.pre))
44 |
45 | # Post-release
46 | if version.post is not None:
47 | parts.append(".post{0}".format(version.post))
48 |
49 | # Development release
50 | if version.dev is not None:
51 | parts.append(".dev{0}".format(version.dev))
52 |
53 | # Local version segment
54 | if version.local is not None:
55 | parts.append("+{0}".format(version.local))
56 |
57 | return "".join(parts)
58 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/__init__.py:
--------------------------------------------------------------------------------
1 | """Wrappers to build Python packages using PEP 517 hooks
2 | """
3 |
4 | __version__ = '0.5.0'
5 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/compat.py:
--------------------------------------------------------------------------------
1 | """Handle reading and writing JSON in UTF-8, on Python 3 and 2."""
2 | import json
3 | import sys
4 |
5 | if sys.version_info[0] >= 3:
6 | # Python 3
7 | def write_json(obj, path, **kwargs):
8 | with open(path, 'w', encoding='utf-8') as f:
9 | json.dump(obj, f, **kwargs)
10 |
11 | def read_json(path):
12 | with open(path, 'r', encoding='utf-8') as f:
13 | return json.load(f)
14 |
15 | else:
16 | # Python 2
17 | def write_json(obj, path, **kwargs):
18 | with open(path, 'wb') as f:
19 | json.dump(obj, f, encoding='utf-8', **kwargs)
20 |
21 | def read_json(path):
22 | with open(path, 'rb') as f:
23 | return json.load(f)
24 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/py31compat.py:
--------------------------------------------------------------------------------
1 | import os
2 | import errno
3 | import sys
4 |
5 | from pip._vendor import six
6 |
7 |
8 | def _makedirs_31(path, exist_ok=False):
9 | try:
10 | os.makedirs(path)
11 | except OSError as exc:
12 | if not exist_ok or exc.errno != errno.EEXIST:
13 | raise
14 |
15 |
16 | # rely on compatibility behavior until mode considerations
17 | # and exists_ok considerations are disentangled.
18 | # See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663
19 | needs_makedirs = (
20 | six.PY2 or
21 | (3, 4) <= sys.version_info < (3, 4, 1)
22 | )
23 | makedirs = _makedirs_31 if needs_makedirs else os.makedirs
24 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/counter.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright (c) 2012 Giorgos Verigakis
4 | #
5 | # Permission to use, copy, modify, and distribute this software for any
6 | # purpose with or without fee is hereby granted, provided that the above
7 | # copyright notice and this permission notice appear in all copies.
8 | #
9 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
17 | from __future__ import unicode_literals
18 | from . import Infinite, Progress
19 | from .helpers import WriteMixin
20 |
21 |
22 | class Counter(WriteMixin, Infinite):
23 | message = ''
24 | hide_cursor = True
25 |
26 | def update(self):
27 | self.write(str(self.index))
28 |
29 |
30 | class Countdown(WriteMixin, Progress):
31 | hide_cursor = True
32 |
33 | def update(self):
34 | self.write(str(self.remaining))
35 |
36 |
37 | class Stack(WriteMixin, Progress):
38 | phases = (' ', '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█')
39 | hide_cursor = True
40 |
41 | def update(self):
42 | nphases = len(self.phases)
43 | i = min(nphases - 1, int(self.progress * nphases))
44 | self.write(self.phases[i])
45 |
46 |
47 | class Pie(Stack):
48 | phases = ('○', '◔', '◑', '◕', '●')
49 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/spinner.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright (c) 2012 Giorgos Verigakis
4 | #
5 | # Permission to use, copy, modify, and distribute this software for any
6 | # purpose with or without fee is hereby granted, provided that the above
7 | # copyright notice and this permission notice appear in all copies.
8 | #
9 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
17 | from __future__ import unicode_literals
18 | from . import Infinite
19 | from .helpers import WriteMixin
20 |
21 |
22 | class Spinner(WriteMixin, Infinite):
23 | message = ''
24 | phases = ('-', '\\', '|', '/')
25 | hide_cursor = True
26 |
27 | def update(self):
28 | i = self.index % len(self.phases)
29 | self.write(self.phases[i])
30 |
31 |
32 | class PieSpinner(Spinner):
33 | phases = ['◷', '◶', '◵', '◴']
34 |
35 |
36 | class MoonSpinner(Spinner):
37 | phases = ['◑', '◒', '◐', '◓']
38 |
39 |
40 | class LineSpinner(Spinner):
41 | phases = ['⎺', '⎻', '⎼', '⎽', '⎼', '⎻']
42 |
43 | class PixelSpinner(Spinner):
44 | phases = ['⣾','⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽']
45 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/__init__.py:
--------------------------------------------------------------------------------
1 | from .core import TomlError
2 | from .parser import load, loads
3 | from .test import translate_to_test
4 | from .writer import dump, dumps
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/core.py:
--------------------------------------------------------------------------------
1 | class TomlError(RuntimeError):
2 | def __init__(self, message, line, col, filename):
3 | RuntimeError.__init__(self, message, line, col, filename)
4 | self.message = message
5 | self.line = line
6 | self.col = col
7 | self.filename = filename
8 |
9 | def __str__(self):
10 | return '{}({}, {}): {}'.format(self.filename, self.line, self.col, self.message)
11 |
12 | def __repr__(self):
13 | return 'TomlError({!r}, {!r}, {!r}, {!r})'.format(self.message, self.line, self.col, self.filename)
14 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/test.py:
--------------------------------------------------------------------------------
1 | import datetime
2 | from .utils import format_rfc3339
3 |
4 | try:
5 | _string_types = (str, unicode)
6 | _int_types = (int, long)
7 | except NameError:
8 | _string_types = str
9 | _int_types = int
10 |
11 | def translate_to_test(v):
12 | if isinstance(v, dict):
13 | return { k: translate_to_test(v) for k, v in v.items() }
14 | if isinstance(v, list):
15 | a = [translate_to_test(x) for x in v]
16 | if v and isinstance(v[0], dict):
17 | return a
18 | else:
19 | return {'type': 'array', 'value': a}
20 | if isinstance(v, datetime.datetime):
21 | return {'type': 'datetime', 'value': format_rfc3339(v)}
22 | if isinstance(v, bool):
23 | return {'type': 'bool', 'value': 'true' if v else 'false'}
24 | if isinstance(v, _int_types):
25 | return {'type': 'integer', 'value': str(v)}
26 | if isinstance(v, float):
27 | return {'type': 'float', 'value': '{:.17}'.format(v)}
28 | if isinstance(v, _string_types):
29 | return {'type': 'string', 'value': v}
30 | raise RuntimeError('unexpected value: {!r}'.format(v))
31 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__version__.py:
--------------------------------------------------------------------------------
1 | # .-. .-. .-. . . .-. .-. .-. .-.
2 | # |( |- |.| | | |- `-. | `-.
3 | # ' ' `-' `-`.`-' `-' `-' ' `-'
4 |
5 | __title__ = 'requests'
6 | __description__ = 'Python HTTP for Humans.'
7 | __url__ = 'http://python-requests.org'
8 | __version__ = '2.21.0'
9 | __build__ = 0x022100
10 | __author__ = 'Kenneth Reitz'
11 | __author_email__ = 'me@kennethreitz.org'
12 | __license__ = 'Apache 2.0'
13 | __copyright__ = 'Copyright 2018 Kenneth Reitz'
14 | __cake__ = u'\u2728 \U0001f370 \u2728'
15 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/_internal_utils.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests._internal_utils
5 | ~~~~~~~~~~~~~~
6 |
7 | Provides utility functions that are consumed internally by Requests
8 | which depend on extremely few external helpers (such as compat)
9 | """
10 |
11 | from .compat import is_py2, builtin_str, str
12 |
13 |
14 | def to_native_string(string, encoding='ascii'):
15 | """Given a string object, regardless of type, returns a representation of
16 | that string in the native string type, encoding and decoding where
17 | necessary. This assumes ASCII unless told otherwise.
18 | """
19 | if isinstance(string, builtin_str):
20 | out = string
21 | else:
22 | if is_py2:
23 | out = string.encode(encoding)
24 | else:
25 | out = string.decode(encoding)
26 |
27 | return out
28 |
29 |
30 | def unicode_is_ascii(u_string):
31 | """Determine if unicode string only contains ASCII characters.
32 |
33 | :param str u_string: unicode string to check. Must be unicode
34 | and not Python 2 `str`.
35 | :rtype: bool
36 | """
37 | assert isinstance(u_string, str)
38 | try:
39 | u_string.encode('ascii')
40 | return True
41 | except UnicodeEncodeError:
42 | return False
43 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/certs.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | """
5 | requests.certs
6 | ~~~~~~~~~~~~~~
7 |
8 | This module returns the preferred default CA certificate bundle. There is
9 | only one — the one from the certifi package.
10 |
11 | If you are packaging Requests, e.g., for a Linux distribution or a managed
12 | environment, you can change the definition of where() to return a separately
13 | packaged CA bundle.
14 | """
15 | from pip._vendor.certifi import where
16 |
17 | if __name__ == '__main__':
18 | print(where())
19 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/hooks.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests.hooks
5 | ~~~~~~~~~~~~~~
6 |
7 | This module provides the capabilities for the Requests hooks system.
8 |
9 | Available hooks:
10 |
11 | ``response``:
12 | The response generated from a Request.
13 | """
14 | HOOKS = ['response']
15 |
16 |
17 | def default_hooks():
18 | return {event: [] for event in HOOKS}
19 |
20 | # TODO: response is the only one
21 |
22 |
23 | def dispatch_hook(key, hooks, hook_data, **kwargs):
24 | """Dispatches a hook dictionary on a given piece of data."""
25 | hooks = hooks or {}
26 | hooks = hooks.get(key)
27 | if hooks:
28 | if hasattr(hooks, '__call__'):
29 | hooks = [hooks]
30 | for hook in hooks:
31 | _hook_data = hook(hook_data, **kwargs)
32 | if _hook_data is not None:
33 | hook_data = _hook_data
34 | return hook_data
35 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/packages.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | # This code exists for backwards compatibility reasons.
4 | # I don't like it either. Just look the other way. :)
5 |
6 | for package in ('urllib3', 'idna', 'chardet'):
7 | vendored_package = "pip._vendor." + package
8 | locals()[package] = __import__(vendored_package)
9 | # This traversal is apparently necessary such that the identities are
10 | # preserved (requests.packages.urllib3.* is urllib3.*)
11 | for mod in list(sys.modules):
12 | if mod == vendored_package or mod.startswith(vendored_package + '.'):
13 | unprefixed_mod = mod[len("pip._vendor."):]
14 | sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod]
15 |
16 | # Kinda cool, though, right?
17 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/__init__.py
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py:
--------------------------------------------------------------------------------
1 | """
2 | This module provides means to detect the App Engine environment.
3 | """
4 |
5 | import os
6 |
7 |
8 | def is_appengine():
9 | return (is_local_appengine() or
10 | is_prod_appengine() or
11 | is_prod_appengine_mvms())
12 |
13 |
14 | def is_appengine_sandbox():
15 | return is_appengine() and not is_prod_appengine_mvms()
16 |
17 |
18 | def is_local_appengine():
19 | return ('APPENGINE_RUNTIME' in os.environ and
20 | 'Development/' in os.environ['SERVER_SOFTWARE'])
21 |
22 |
23 | def is_prod_appengine():
24 | return ('APPENGINE_RUNTIME' in os.environ and
25 | 'Google App Engine/' in os.environ['SERVER_SOFTWARE'] and
26 | not is_prod_appengine_mvms())
27 |
28 |
29 | def is_prod_appengine_mvms():
30 | return os.environ.get('GAE_VM', False) == 'true'
31 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | from . import ssl_match_hostname
4 |
5 | __all__ = ('ssl_match_hostname', )
6 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/__init__.py
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/makefile.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | backports.makefile
4 | ~~~~~~~~~~~~~~~~~~
5 |
6 | Backports the Python 3 ``socket.makefile`` method for use with anything that
7 | wants to create a "fake" socket object.
8 | """
9 | import io
10 |
11 | from socket import SocketIO
12 |
13 |
14 | def backport_makefile(self, mode="r", buffering=None, encoding=None,
15 | errors=None, newline=None):
16 | """
17 | Backport of ``socket.makefile`` from Python 3.5.
18 | """
19 | if not set(mode) <= {"r", "w", "b"}:
20 | raise ValueError(
21 | "invalid mode %r (only r, w, b allowed)" % (mode,)
22 | )
23 | writing = "w" in mode
24 | reading = "r" in mode or not writing
25 | assert reading or writing
26 | binary = "b" in mode
27 | rawmode = ""
28 | if reading:
29 | rawmode += "r"
30 | if writing:
31 | rawmode += "w"
32 | raw = SocketIO(self, rawmode)
33 | self._makefile_refs += 1
34 | if buffering is None:
35 | buffering = -1
36 | if buffering < 0:
37 | buffering = io.DEFAULT_BUFFER_SIZE
38 | if buffering == 0:
39 | if not binary:
40 | raise ValueError("unbuffered streams must be binary")
41 | return raw
42 | if reading and writing:
43 | buffer = io.BufferedRWPair(raw, raw, buffering)
44 | elif reading:
45 | buffer = io.BufferedReader(raw, buffering)
46 | else:
47 | assert writing
48 | buffer = io.BufferedWriter(raw, buffering)
49 | if binary:
50 | return buffer
51 | text = io.TextIOWrapper(buffer, encoding, errors, newline)
52 | text.mode = mode
53 | return text
54 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | try:
4 | # Our match_hostname function is the same as 3.5's, so we only want to
5 | # import the match_hostname function if it's at least that good.
6 | if sys.version_info < (3, 5):
7 | raise ImportError("Fallback to vendored code")
8 |
9 | from ssl import CertificateError, match_hostname
10 | except ImportError:
11 | try:
12 | # Backport of the function from a pypi module
13 | from backports.ssl_match_hostname import CertificateError, match_hostname
14 | except ImportError:
15 | # Our vendored copy
16 | from ._implementation import CertificateError, match_hostname
17 |
18 | # Not needed, but documenting what we provide.
19 | __all__ = ('CertificateError', 'match_hostname')
20 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | # For backwards compatibility, provide imports that used to be here.
3 | from .connection import is_connection_dropped
4 | from .request import make_headers
5 | from .response import is_fp_closed
6 | from .ssl_ import (
7 | SSLContext,
8 | HAS_SNI,
9 | IS_PYOPENSSL,
10 | IS_SECURETRANSPORT,
11 | assert_fingerprint,
12 | resolve_cert_reqs,
13 | resolve_ssl_version,
14 | ssl_wrap_socket,
15 | )
16 | from .timeout import (
17 | current_time,
18 | Timeout,
19 | )
20 |
21 | from .retry import Retry
22 | from .url import (
23 | get_host,
24 | parse_url,
25 | split_first,
26 | Url,
27 | )
28 | from .wait import (
29 | wait_for_read,
30 | wait_for_write
31 | )
32 |
33 | __all__ = (
34 | 'HAS_SNI',
35 | 'IS_PYOPENSSL',
36 | 'IS_SECURETRANSPORT',
37 | 'SSLContext',
38 | 'Retry',
39 | 'Timeout',
40 | 'Url',
41 | 'assert_fingerprint',
42 | 'current_time',
43 | 'is_connection_dropped',
44 | 'is_fp_closed',
45 | 'get_host',
46 | 'parse_url',
47 | 'make_headers',
48 | 'resolve_cert_reqs',
49 | 'resolve_ssl_version',
50 | 'split_first',
51 | 'ssl_wrap_socket',
52 | 'wait_for_read',
53 | 'wait_for_write'
54 | )
55 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/queue.py:
--------------------------------------------------------------------------------
1 | import collections
2 | from ..packages import six
3 | from ..packages.six.moves import queue
4 |
5 | if six.PY2:
6 | # Queue is imported for side effects on MS Windows. See issue #229.
7 | import Queue as _unused_module_Queue # noqa: F401
8 |
9 |
10 | class LifoQueue(queue.Queue):
11 | def _init(self, _):
12 | self.queue = collections.deque()
13 |
14 | def _qsize(self, len=len):
15 | return len(self.queue)
16 |
17 | def _put(self, item):
18 | self.queue.append(item)
19 |
20 | def _get(self):
21 | return self.queue.pop()
22 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/mklabels.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | webencodings.mklabels
4 | ~~~~~~~~~~~~~~~~~~~~~
5 |
6 | Regenarate the webencodings.labels module.
7 |
8 | :copyright: Copyright 2012 by Simon Sapin
9 | :license: BSD, see LICENSE for details.
10 |
11 | """
12 |
13 | import json
14 | try:
15 | from urllib import urlopen
16 | except ImportError:
17 | from urllib.request import urlopen
18 |
19 |
20 | def assert_lower(string):
21 | assert string == string.lower()
22 | return string
23 |
24 |
25 | def generate(url):
26 | parts = ['''\
27 | """
28 |
29 | webencodings.labels
30 | ~~~~~~~~~~~~~~~~~~~
31 |
32 | Map encoding labels to their name.
33 |
34 | :copyright: Copyright 2012 by Simon Sapin
35 | :license: BSD, see LICENSE for details.
36 |
37 | """
38 |
39 | # XXX Do not edit!
40 | # This file is automatically generated by mklabels.py
41 |
42 | LABELS = {
43 | ''']
44 | labels = [
45 | (repr(assert_lower(label)).lstrip('u'),
46 | repr(encoding['name']).lstrip('u'))
47 | for category in json.loads(urlopen(url).read().decode('ascii'))
48 | for encoding in category['encodings']
49 | for label in encoding['labels']]
50 | max_len = max(len(label) for label, name in labels)
51 | parts.extend(
52 | ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name)
53 | for label, name in labels)
54 | parts.append('}')
55 | return ''.join(parts)
56 |
57 |
58 | if __name__ == '__main__':
59 | print(generate('http://encoding.spec.whatwg.org/encodings.json'))
60 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/setuptools-40.8.0-py3.6.egg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/setuptools-40.8.0-py3.6.egg
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/setuptools.pth:
--------------------------------------------------------------------------------
1 | ./setuptools-40.8.0-py3.6.egg
2 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/_compat.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/_compat.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/_internal.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/_internal.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/_reloader.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/_reloader.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/datastructures.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/datastructures.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/exceptions.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/exceptions.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/filesystem.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/filesystem.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/formparser.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/formparser.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/http.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/http.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/local.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/local.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/posixemulation.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/posixemulation.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/routing.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/routing.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/security.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/security.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/serving.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/serving.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/test.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/test.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/testapp.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/testapp.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/urls.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/urls.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/useragents.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/useragents.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/utils.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/utils.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/wsgi.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/__pycache__/wsgi.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | werkzeug.contrib
4 | ~~~~~~~~~~~~~~~~
5 |
6 | Contains user-submitted code that other users may find useful, but which
7 | is not part of the Werkzeug core. Anyone can write code for inclusion in
8 | the `contrib` package. All modules in this package are distributed as an
9 | add-on library and thus are not part of Werkzeug itself.
10 |
11 | This file itself is mostly for informational purposes and to tell the
12 | Python interpreter that `contrib` is a package.
13 |
14 | :copyright: 2007 Pallets
15 | :license: BSD-3-Clause
16 | """
17 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/atom.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/atom.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/cache.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/cache.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/fixers.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/fixers.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/iterio.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/iterio.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/lint.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/lint.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/profiler.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/profiler.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/securecookie.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/securecookie.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/sessions.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/sessions.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/wrappers.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/__pycache__/wrappers.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/lint.py:
--------------------------------------------------------------------------------
1 | import warnings
2 |
3 | from ..middleware.lint import * # noqa: F401, F403
4 |
5 | warnings.warn(
6 | "'werkzeug.contrib.lint' has moved to 'werkzeug.middleware.lint'."
7 | " This import is deprecated as of version 0.15 and will be removed"
8 | " in version 1.0.",
9 | DeprecationWarning,
10 | stacklevel=2,
11 | )
12 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/contrib/profiler.py:
--------------------------------------------------------------------------------
1 | import warnings
2 |
3 | from ..middleware.profiler import * # noqa: F401, F403
4 |
5 | warnings.warn(
6 | "'werkzeug.contrib.profiler' has moved to"
7 | "'werkzeug.middleware.profiler'. This import is deprecated as of"
8 | "version 0.15 and will be removed in version 1.0.",
9 | DeprecationWarning,
10 | stacklevel=2,
11 | )
12 |
13 |
14 | class MergeStream(object):
15 | """An object that redirects ``write`` calls to multiple streams.
16 | Use this to log to both ``sys.stdout`` and a file::
17 |
18 | f = open('profiler.log', 'w')
19 | stream = MergeStream(sys.stdout, f)
20 | profiler = ProfilerMiddleware(app, stream)
21 |
22 | .. deprecated:: 0.15
23 | Use the ``tee`` command in your terminal instead. This class
24 | will be removed in 1.0.
25 | """
26 |
27 | def __init__(self, *streams):
28 | warnings.warn(
29 | "'MergeStream' is deprecated as of version 0.15 and will be removed in"
30 | " version 1.0. Use your terminal's 'tee' command instead.",
31 | DeprecationWarning,
32 | stacklevel=2,
33 | )
34 |
35 | if not streams:
36 | raise TypeError("At least one stream must be given.")
37 |
38 | self.streams = streams
39 |
40 | def write(self, data):
41 | for stream in self.streams:
42 | stream.write(data)
43 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/console.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/console.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/repr.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/repr.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/tbtools.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/__pycache__/tbtools.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/console.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/console.png
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/less.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/less.png
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/more.png
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/source.png
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/ubuntu.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/debug/shared/ubuntu.ttf
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | Middleware
3 | ==========
4 |
5 | A WSGI middleware is a WSGI application that wraps another application
6 | in order to observe or change its behavior. Werkzeug provides some
7 | middleware for common use cases.
8 |
9 | .. toctree::
10 | :maxdepth: 1
11 |
12 | proxy_fix
13 | shared_data
14 | dispatcher
15 | http_proxy
16 | lint
17 | profiler
18 |
19 | The :doc:`interactive debugger ` is also a middleware that can
20 | be applied manually, although it is typically used automatically with
21 | the :doc:`development server `.
22 |
23 | :copyright: 2007 Pallets
24 | :license: BSD-3-Clause
25 | """
26 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/dispatcher.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/dispatcher.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/http_proxy.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/http_proxy.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/lint.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/lint.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/profiler.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/profiler.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/proxy_fix.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/proxy_fix.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/shared_data.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/middleware/__pycache__/shared_data.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | werkzeug.wrappers
3 | ~~~~~~~~~~~~~~~~~
4 |
5 | The wrappers are simple request and response objects which you can
6 | subclass to do whatever you want them to do. The request object contains
7 | the information transmitted by the client (webbrowser) and the response
8 | object contains all the information sent back to the browser.
9 |
10 | An important detail is that the request object is created with the WSGI
11 | environ and will act as high-level proxy whereas the response object is an
12 | actual WSGI application.
13 |
14 | Like everything else in Werkzeug these objects will work correctly with
15 | unicode data. Incoming form data parsed by the response object will be
16 | decoded into an unicode object if possible and if it makes sense.
17 |
18 | :copyright: 2007 Pallets
19 | :license: BSD-3-Clause
20 | """
21 | from .accept import AcceptMixin
22 | from .auth import AuthorizationMixin
23 | from .auth import WWWAuthenticateMixin
24 | from .base_request import BaseRequest
25 | from .base_response import BaseResponse
26 | from .common_descriptors import CommonRequestDescriptorsMixin
27 | from .common_descriptors import CommonResponseDescriptorsMixin
28 | from .etag import ETagRequestMixin
29 | from .etag import ETagResponseMixin
30 | from .request import PlainRequest
31 | from .request import Request
32 | from .request import StreamOnlyMixin
33 | from .response import Response
34 | from .response import ResponseStream
35 | from .response import ResponseStreamMixin
36 | from .user_agent import UserAgentMixin
37 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/accept.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/accept.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/auth.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/auth.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/base_request.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/base_request.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/base_response.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/base_response.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/common_descriptors.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/common_descriptors.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/etag.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/etag.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/json.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/json.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/request.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/request.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/response.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/response.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/user_agent.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/__pycache__/user_agent.cpython-36.pyc
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/auth.py:
--------------------------------------------------------------------------------
1 | from ..http import parse_authorization_header
2 | from ..http import parse_www_authenticate_header
3 | from ..utils import cached_property
4 |
5 |
6 | class AuthorizationMixin(object):
7 | """Adds an :attr:`authorization` property that represents the parsed
8 | value of the `Authorization` header as
9 | :class:`~werkzeug.datastructures.Authorization` object.
10 | """
11 |
12 | @cached_property
13 | def authorization(self):
14 | """The `Authorization` object in parsed form."""
15 | header = self.environ.get("HTTP_AUTHORIZATION")
16 | return parse_authorization_header(header)
17 |
18 |
19 | class WWWAuthenticateMixin(object):
20 | """Adds a :attr:`www_authenticate` property to a response object."""
21 |
22 | @property
23 | def www_authenticate(self):
24 | """The `WWW-Authenticate` header in a parsed form."""
25 |
26 | def on_update(www_auth):
27 | if not www_auth and "www-authenticate" in self.headers:
28 | del self.headers["www-authenticate"]
29 | elif www_auth:
30 | self.headers["WWW-Authenticate"] = www_auth.to_header()
31 |
32 | header = self.headers.get("www-authenticate")
33 | return parse_www_authenticate_header(header, on_update)
34 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/request.py:
--------------------------------------------------------------------------------
1 | from .accept import AcceptMixin
2 | from .auth import AuthorizationMixin
3 | from .base_request import BaseRequest
4 | from .common_descriptors import CommonRequestDescriptorsMixin
5 | from .etag import ETagRequestMixin
6 | from .user_agent import UserAgentMixin
7 |
8 |
9 | class Request(
10 | BaseRequest,
11 | AcceptMixin,
12 | ETagRequestMixin,
13 | UserAgentMixin,
14 | AuthorizationMixin,
15 | CommonRequestDescriptorsMixin,
16 | ):
17 | """Full featured request object implementing the following mixins:
18 |
19 | - :class:`AcceptMixin` for accept header parsing
20 | - :class:`ETagRequestMixin` for etag and cache control handling
21 | - :class:`UserAgentMixin` for user agent introspection
22 | - :class:`AuthorizationMixin` for http auth handling
23 | - :class:`CommonRequestDescriptorsMixin` for common headers
24 | """
25 |
26 |
27 | class StreamOnlyMixin(object):
28 | """If mixed in before the request object this will change the bahavior
29 | of it to disable handling of form parsing. This disables the
30 | :attr:`files`, :attr:`form` attributes and will just provide a
31 | :attr:`stream` attribute that however is always available.
32 |
33 | .. versionadded:: 0.9
34 | """
35 |
36 | disable_data_descriptor = True
37 | want_form_data_parsed = False
38 |
39 |
40 | class PlainRequest(StreamOnlyMixin, Request):
41 | """A request object without special form parsing capabilities.
42 |
43 | .. versionadded:: 0.9
44 | """
45 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib/python3.6/site-packages/werkzeug/wrappers/user_agent.py:
--------------------------------------------------------------------------------
1 | from ..utils import cached_property
2 |
3 |
4 | class UserAgentMixin(object):
5 | """Adds a `user_agent` attribute to the request object which
6 | contains the parsed user agent of the browser that triggered the
7 | request as a :class:`~werkzeug.useragents.UserAgent` object.
8 | """
9 |
10 | @cached_property
11 | def user_agent(self):
12 | """The current user agent."""
13 | from ..useragents import UserAgent
14 |
15 | return UserAgent(self.environ)
16 |
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/lib64:
--------------------------------------------------------------------------------
1 | lib
--------------------------------------------------------------------------------
/Section 5/Video 5.2/venv/pyvenv.cfg:
--------------------------------------------------------------------------------
1 | home = /usr/bin
2 | include-system-site-packages = false
3 | version = 3.6.7
4 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/service/requirements.txt:
--------------------------------------------------------------------------------
1 | aniso8601==6.0.0
2 | attrs==19.1.0
3 | Click==7.0
4 | Flask==1.0.2
5 | Flask-Cors==3.0.7
6 | flask-restplus==0.12.1
7 | itsdangerous==1.1.0
8 | Jinja2==2.10.1
9 | jsonschema==3.0.1
10 | MarkupSafe==1.1.1
11 | numpy==1.16.2
12 | pyrsistent==0.14.11
13 | pytz==2019.1
14 | scikit-learn==0.20.3
15 | scipy==1.2.1
16 | six==1.12.0
17 | sklearn==0.0
18 | Werkzeug==0.15.2
19 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "bootstrap": "^4.3.1",
7 | "react": "^16.8.6",
8 | "react-bootstrap": "^1.0.0-beta.6",
9 | "react-dom": "^16.8.6",
10 | "react-scripts": "2.1.8"
11 | },
12 | "scripts": {
13 | "start": "react-scripts start",
14 | "build": "react-scripts build",
15 | "test": "react-scripts test",
16 | "eject": "react-scripts eject"
17 | },
18 | "eslintConfig": {
19 | "extends": "react-app"
20 | },
21 | "browserslist": [
22 | ">0.2%",
23 | "not dead",
24 | "not ie <= 11",
25 | "not op_mini all"
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.3/ui/public/favicon.ico
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
15 |
16 |
25 | React App
26 |
27 |
28 |
29 |
30 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/src/App.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | background: url('https://images.unsplash.com/uploads/1413595244012e81f5c69/de0cc225?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=b019868c314903110f248b3a5cbd36e4&auto=format&fit=crop&w=1050&q=80') center center no-repeat;
3 | background-size: cover;
4 | color: white;
5 | height: 100%;
6 | width: 100%;
7 | }
8 |
9 | .content {
10 | margin: auto;
11 | margin-top: 20px;
12 | width: 70%;
13 | height: auto;
14 | background-color: #fff;
15 | padding: 20px;
16 | border-radius: 8px;
17 | }
18 |
19 | .title {
20 | padding-top: 100px;
21 | text-align: center;
22 | text-transform: uppercase;
23 | font-weight: 600;
24 | font-size: 4em;
25 | letter-spacing: 0.15rem;
26 | color: #fff;
27 | }
28 |
29 | label {
30 | color: #333;
31 | }
32 |
33 | .result-container {
34 | text-align: center;
35 | font-weight: 600;
36 | font-size: 4em;
37 | letter-spacing: 0.15rem;
38 | padding: 20px 0 0;
39 | }
40 |
41 | #result {
42 | color: #000;
43 | }
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
13 | monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/Section 5/Video 5.3/ui/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import * as serviceWorker from './serviceWorker';
6 |
7 | ReactDOM.render(, document.getElementById('root'));
8 |
9 | // If you want your app to work offline and load faster, you can change
10 | // unregister() to register() below. Note this comes with some pitfalls.
11 | // Learn more about service workers: https://bit.ly/CRA-PWA
12 | serviceWorker.unregister();
13 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/service/classifier.joblib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.4/service/classifier.joblib
--------------------------------------------------------------------------------
/Section 5/Video 5.4/service/model_generator.py:
--------------------------------------------------------------------------------
1 | # Import libraries
2 | import numpy as np
3 | import pandas as pd
4 | from sklearn.model_selection import train_test_split
5 | from sklearn.metrics import confusion_matrix
6 | from sklearn.tree import DecisionTreeClassifier
7 | from sklearn.externals import joblib
8 | from sklearn import datasets
9 |
10 | # Get the dataset
11 | dataset = datasets.load_iris()
12 |
13 | # Split the dataset into features and labels
14 | X = dataset.data
15 | y = dataset.target
16 |
17 | # Split the dataset into training (80%) and testing (20%) data
18 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0, shuffle = True)
19 |
20 | # Build the classifier and make prediction
21 | classifier = DecisionTreeClassifier()
22 | classifier.fit(X_train, y_train)
23 | prediction = classifier.predict(X_test)
24 |
25 | # Print the confusion matrix
26 | print("Confusion Matrix:")
27 | print(confusion_matrix(y_test, prediction))
28 |
29 | # Save the model to disk
30 | joblib.dump(classifier, 'classifier.joblib')
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/service/requirements.txt:
--------------------------------------------------------------------------------
1 | aniso8601==6.0.0
2 | attrs==19.1.0
3 | Click==7.0
4 | Flask==1.0.2
5 | Flask-Cors==3.0.7
6 | flask-restplus==0.12.1
7 | itsdangerous==1.1.0
8 | Jinja2==2.10.1
9 | jsonschema==3.0.1
10 | MarkupSafe==1.1.1
11 | numpy==1.16.2
12 | pandas==0.24.2
13 | pyrsistent==0.14.11
14 | python-dateutil==2.8.0
15 | pytz==2019.1
16 | scikit-learn==0.20.3
17 | scipy==1.2.1
18 | six==1.12.0
19 | sklearn==0.0
20 | Werkzeug==0.15.2
21 | wget==3.2
22 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "bootstrap": "^4.3.1",
7 | "react": "^16.8.6",
8 | "react-bootstrap": "^1.0.0-beta.6",
9 | "react-dom": "^16.8.6",
10 | "react-scripts": "2.1.8"
11 | },
12 | "scripts": {
13 | "start": "react-scripts start",
14 | "build": "react-scripts build",
15 | "test": "react-scripts test",
16 | "eject": "react-scripts eject"
17 | },
18 | "eslintConfig": {
19 | "extends": "react-app"
20 | },
21 | "browserslist": [
22 | ">0.2%",
23 | "not dead",
24 | "not ie <= 11",
25 | "not op_mini all"
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Section 5/Video 5.4/ui/public/favicon.ico
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
15 |
16 |
25 | Iris Plant Classifier
26 |
27 |
28 |
29 |
30 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/src/App.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | background: url('https://images.unsplash.com/photo-1525024917383-14967b1980f5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1950&q=80') center center no-repeat;
3 | background-size: cover;
4 | color: white;
5 | height: 100%;
6 | width: 100%;
7 | }
8 |
9 | .content {
10 | margin: 20px auto auto;
11 | width: 70%;
12 | height: auto;
13 | background-color: #fff;
14 | padding: 20px;
15 | border-radius: 8px;
16 | }
17 |
18 | .title {
19 | padding-top: 100px;
20 | text-align: center;
21 | text-transform: uppercase;
22 | font-weight: 600;
23 | font-size: 4em;
24 | letter-spacing: 0.15rem;
25 | color: #fff;
26 | }
27 |
28 | label {
29 | color: #333;
30 | }
31 |
32 | .result-container {
33 | text-align: center;
34 | font-weight: 600;
35 | font-size: 4em;
36 | letter-spacing: 0.15rem;
37 | padding: 20px 0 0;
38 | }
39 |
40 | #result {
41 | color: #000;
42 | }
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
13 | monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/Section 5/Video 5.4/ui/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import * as serviceWorker from './serviceWorker';
6 |
7 | ReactDOM.render(, document.getElementById('root'));
8 |
9 | // If you want your app to work offline and load faster, you can change
10 | // unregister() to register() below. Note this comes with some pitfalls.
11 | // Learn more about service workers: https://bit.ly/CRA-PWA
12 | serviceWorker.unregister();
13 |
--------------------------------------------------------------------------------
/Video 5.3/service/requirements.txt:
--------------------------------------------------------------------------------
1 | aniso8601==6.0.0
2 | attrs==19.1.0
3 | Click==7.0
4 | Flask==1.0.2
5 | Flask-Cors==3.0.7
6 | flask-restplus==0.12.1
7 | itsdangerous==1.1.0
8 | Jinja2==2.10.1
9 | jsonschema==3.0.1
10 | MarkupSafe==1.1.1
11 | numpy==1.16.2
12 | pyrsistent==0.14.11
13 | pytz==2019.1
14 | scikit-learn==0.20.3
15 | scipy==1.2.1
16 | six==1.12.0
17 | sklearn==0.0
18 | Werkzeug==0.15.2
19 |
--------------------------------------------------------------------------------
/Video 5.3/ui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "bootstrap": "^4.3.1",
7 | "react": "^16.8.6",
8 | "react-bootstrap": "^1.0.0-beta.6",
9 | "react-dom": "^16.8.6",
10 | "react-scripts": "2.1.8"
11 | },
12 | "scripts": {
13 | "start": "react-scripts start",
14 | "build": "react-scripts build",
15 | "test": "react-scripts test",
16 | "eject": "react-scripts eject"
17 | },
18 | "eslintConfig": {
19 | "extends": "react-app"
20 | },
21 | "browserslist": [
22 | ">0.2%",
23 | "not dead",
24 | "not ie <= 11",
25 | "not op_mini all"
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/Video 5.3/ui/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/Building-Recommendation-Systems-with-Python/65df8a0662d79a684b56aabe60e4bb93f14f1ec1/Video 5.3/ui/public/favicon.ico
--------------------------------------------------------------------------------
/Video 5.3/ui/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
15 |
16 |
25 | React App
26 |
27 |
28 |
29 |
30 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Video 5.3/ui/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/Video 5.3/ui/src/App.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | background: url('https://images.unsplash.com/uploads/1413595244012e81f5c69/de0cc225?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=b019868c314903110f248b3a5cbd36e4&auto=format&fit=crop&w=1050&q=80') center center no-repeat;
3 | background-size: cover;
4 | color: white;
5 | height: 100%;
6 | width: 100%;
7 | }
8 |
9 | .content {
10 | margin: auto;
11 | margin-top: 20px;
12 | width: 70%;
13 | height: auto;
14 | background-color: #fff;
15 | padding: 20px;
16 | border-radius: 8px;
17 | }
18 |
19 | .title {
20 | padding-top: 100px;
21 | text-align: center;
22 | text-transform: uppercase;
23 | font-weight: 600;
24 | font-size: 4em;
25 | letter-spacing: 0.15rem;
26 | color: #fff;
27 | }
28 |
29 | label {
30 | color: #333;
31 | }
32 |
33 | .result-container {
34 | text-align: center;
35 | font-weight: 600;
36 | font-size: 4em;
37 | letter-spacing: 0.15rem;
38 | padding: 20px 0 0;
39 | }
40 |
41 | #result {
42 | color: #000;
43 | }
--------------------------------------------------------------------------------
/Video 5.3/ui/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/Video 5.3/ui/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
13 | monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/Video 5.3/ui/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import * as serviceWorker from './serviceWorker';
6 |
7 | ReactDOM.render(, document.getElementById('root'));
8 |
9 | // If you want your app to work offline and load faster, you can change
10 | // unregister() to register() below. Note this comes with some pitfalls.
11 | // Learn more about service workers: https://bit.ly/CRA-PWA
12 | serviceWorker.unregister();
13 |
--------------------------------------------------------------------------------