├── 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 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 24 | -------------------------------------------------------------------------------- /Section 5/Video 5.2/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 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 | --------------------------------------------------------------------------------