├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── contributing.md ├── env_user.py ├── intro-python ├── git-basics │ └── change_me.txt ├── interpreter-basics │ ├── hands_on_exercise.py │ └── hello.py ├── parsing-json │ ├── interface-config.json │ ├── interfaces.json │ ├── nested_data.py │ ├── parsing_json.py │ └── pep20.txt └── types-loops-tools │ ├── dive_finds.py │ ├── structure.py │ └── variable_scope.py ├── meraki-captive-portal ├── external_captive_portal.py ├── requirements.txt ├── static │ └── sample.css └── templates │ ├── click.html │ └── success.html ├── meraki-location-scanning-python ├── locationscanningreceiver.py ├── requirements.txt ├── static │ ├── FiraGranVia.png │ ├── blue_circle.png │ ├── sample.css │ └── sample.js └── templates │ └── index.html ├── meraki-mission-1 ├── mxfirewallcontrol.py └── requirements.txt ├── meraki-mission-2 ├── requirements.txt └── webhookreceiver.py ├── meraki-mission-3 ├── mission_captive_portal.py ├── requirements.txt ├── static │ └── sample.css └── templates │ ├── click.html │ └── success.html ├── meraki-mv-sense ├── mv_mqtt.py └── requirements.txt ├── meraki-webhooks ├── README.md ├── requirements.txt └── webhookreceiver.py ├── meraki_cloud_simulator ├── Dockerfile ├── README.md ├── docker-compose.yml ├── locationscanningv3format.json ├── meraki-sample-captive-portal │ ├── Dockerfile │ ├── env_user.py │ ├── meraki_sample_captive_portal.py │ ├── requirements.txt │ ├── static │ │ └── sample.css │ └── templates │ │ ├── click.html │ │ └── success.html ├── meraki-sample-location-scanning-receiver │ ├── Dockerfile │ ├── env_user.py │ ├── meraki_sample_location_scanning_receiver.py │ ├── requirements.txt │ ├── static │ │ ├── FiraGranVia.png │ │ ├── blue_circle.png │ │ ├── sample.css │ │ └── sample.js │ └── templates │ │ └── index.html ├── meraki-sample-webhook-receiver │ ├── Dockerfile │ ├── env_user.py │ ├── meraki_sample_webhook_receiver.py │ └── requirements.txt ├── meraki_cloud_simulator.py ├── merakicloudsimulator │ ├── __init__.py │ ├── alert_settings.py │ ├── excapsimulator.py │ ├── locationscanningsimulator.py │ ├── meraki_settings.py │ ├── sample_alert_messages.py │ ├── static │ │ ├── locationsimulator.js │ │ └── sample.css │ ├── templates │ │ ├── excap.html │ │ ├── excapconnected.html │ │ ├── index.html │ │ ├── locationscanning.html │ │ ├── locationscanningrunning.html │ │ └── webhook.html │ └── webhooksimulator.py ├── requirements.txt └── wt_vars.env ├── postman ├── Meraki Dashboard API - v1.9.0.postman_collection.json ├── Meraki Dashboard API.postman_environment.json ├── deckofcards.postman_collection.json └── deckofcardsapi.postman_environment.json ├── requirements.txt ├── rest-api ├── postman │ ├── deckofcards.postman_collection.json │ └── deckofcardsapi.postman_environment.json └── python │ └── deck_of_cards.py ├── venv ├── bin │ ├── Activate.ps1 │ ├── activate │ ├── activate.csh │ ├── activate.fish │ ├── chardetect │ ├── flask │ ├── futurize │ ├── pasteurize │ ├── pip │ ├── pip3 │ ├── pip3.9 │ ├── python │ ├── python3 │ └── python3.9 ├── lib │ └── python3.9 │ │ └── site-packages │ │ ├── Flask-1.1.2.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── REQUESTED │ │ ├── WHEEL │ │ ├── entry_points.txt │ │ └── top_level.txt │ │ ├── Jinja2-2.11.3.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ ├── entry_points.txt │ │ └── top_level.txt │ │ ├── MarkupSafe-1.1.1.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── PyJWT-2.0.1.dist-info │ │ ├── AUTHORS.rst │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── Werkzeug-1.0.1.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── _distutils_hack │ │ ├── __init__.py │ │ └── override.py │ │ ├── certifi-2020.12.5.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── certifi │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── cacert.pem │ │ └── core.py │ │ ├── chardet-4.0.0.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ ├── entry_points.txt │ │ └── top_level.txt │ │ ├── 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 │ │ ├── langgreekmodel.py │ │ ├── langhebrewmodel.py │ │ ├── langhungarianmodel.py │ │ ├── langrussianmodel.py │ │ ├── langthaimodel.py │ │ ├── langturkishmodel.py │ │ ├── latin1prober.py │ │ ├── mbcharsetprober.py │ │ ├── mbcsgroupprober.py │ │ ├── mbcssm.py │ │ ├── metadata │ │ │ ├── __init__.py │ │ │ └── languages.py │ │ ├── sbcharsetprober.py │ │ ├── sbcsgroupprober.py │ │ ├── sjisprober.py │ │ ├── universaldetector.py │ │ ├── utf8prober.py │ │ └── version.py │ │ ├── click-7.1.2.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── click │ │ ├── __init__.py │ │ ├── _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 │ │ ├── distutils-precedence.pth │ │ ├── flask │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── _compat.py │ │ ├── app.py │ │ ├── blueprints.py │ │ ├── cli.py │ │ ├── config.py │ │ ├── ctx.py │ │ ├── debughelpers.py │ │ ├── globals.py │ │ ├── helpers.py │ │ ├── json │ │ │ ├── __init__.py │ │ │ └── tag.py │ │ ├── logging.py │ │ ├── sessions.py │ │ ├── signals.py │ │ ├── templating.py │ │ ├── testing.py │ │ ├── views.py │ │ └── wrappers.py │ │ ├── future-0.18.2-py3.9.egg-info │ │ ├── PKG-INFO │ │ ├── SOURCES.txt │ │ ├── dependency_links.txt │ │ ├── entry_points.txt │ │ ├── installed-files.txt │ │ └── top_level.txt │ │ ├── future │ │ ├── __init__.py │ │ ├── backports │ │ │ ├── __init__.py │ │ │ ├── _markupbase.py │ │ │ ├── datetime.py │ │ │ ├── email │ │ │ │ ├── __init__.py │ │ │ │ ├── _encoded_words.py │ │ │ │ ├── _header_value_parser.py │ │ │ │ ├── _parseaddr.py │ │ │ │ ├── _policybase.py │ │ │ │ ├── base64mime.py │ │ │ │ ├── charset.py │ │ │ │ ├── encoders.py │ │ │ │ ├── errors.py │ │ │ │ ├── feedparser.py │ │ │ │ ├── generator.py │ │ │ │ ├── header.py │ │ │ │ ├── headerregistry.py │ │ │ │ ├── iterators.py │ │ │ │ ├── message.py │ │ │ │ ├── mime │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── application.py │ │ │ │ │ ├── audio.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── image.py │ │ │ │ │ ├── message.py │ │ │ │ │ ├── multipart.py │ │ │ │ │ ├── nonmultipart.py │ │ │ │ │ └── text.py │ │ │ │ ├── parser.py │ │ │ │ ├── policy.py │ │ │ │ ├── quoprimime.py │ │ │ │ └── utils.py │ │ │ ├── html │ │ │ │ ├── __init__.py │ │ │ │ ├── entities.py │ │ │ │ └── parser.py │ │ │ ├── http │ │ │ │ ├── __init__.py │ │ │ │ ├── client.py │ │ │ │ ├── cookiejar.py │ │ │ │ ├── cookies.py │ │ │ │ └── server.py │ │ │ ├── misc.py │ │ │ ├── socket.py │ │ │ ├── socketserver.py │ │ │ ├── test │ │ │ │ ├── __init__.py │ │ │ │ ├── badcert.pem │ │ │ │ ├── badkey.pem │ │ │ │ ├── dh512.pem │ │ │ │ ├── https_svn_python_org_root.pem │ │ │ │ ├── keycert.passwd.pem │ │ │ │ ├── keycert.pem │ │ │ │ ├── keycert2.pem │ │ │ │ ├── nokia.pem │ │ │ │ ├── nullbytecert.pem │ │ │ │ ├── nullcert.pem │ │ │ │ ├── pystone.py │ │ │ │ ├── sha256.pem │ │ │ │ ├── ssl_cert.pem │ │ │ │ ├── ssl_key.passwd.pem │ │ │ │ ├── ssl_key.pem │ │ │ │ ├── ssl_servers.py │ │ │ │ └── support.py │ │ │ ├── total_ordering.py │ │ │ ├── urllib │ │ │ │ ├── __init__.py │ │ │ │ ├── error.py │ │ │ │ ├── parse.py │ │ │ │ ├── request.py │ │ │ │ ├── response.py │ │ │ │ └── robotparser.py │ │ │ └── xmlrpc │ │ │ │ ├── __init__.py │ │ │ │ ├── client.py │ │ │ │ └── server.py │ │ ├── builtins │ │ │ ├── __init__.py │ │ │ ├── disabled.py │ │ │ ├── iterators.py │ │ │ ├── misc.py │ │ │ ├── new_min_max.py │ │ │ ├── newnext.py │ │ │ ├── newround.py │ │ │ └── newsuper.py │ │ ├── moves │ │ │ ├── __init__.py │ │ │ ├── _dummy_thread.py │ │ │ ├── _markupbase.py │ │ │ ├── _thread.py │ │ │ ├── builtins.py │ │ │ ├── collections.py │ │ │ ├── configparser.py │ │ │ ├── copyreg.py │ │ │ ├── dbm │ │ │ │ ├── __init__.py │ │ │ │ ├── dumb.py │ │ │ │ ├── gnu.py │ │ │ │ └── ndbm.py │ │ │ ├── html │ │ │ │ ├── __init__.py │ │ │ │ ├── entities.py │ │ │ │ └── parser.py │ │ │ ├── http │ │ │ │ ├── __init__.py │ │ │ │ ├── client.py │ │ │ │ ├── cookiejar.py │ │ │ │ ├── cookies.py │ │ │ │ └── server.py │ │ │ ├── itertools.py │ │ │ ├── pickle.py │ │ │ ├── queue.py │ │ │ ├── reprlib.py │ │ │ ├── socketserver.py │ │ │ ├── subprocess.py │ │ │ ├── sys.py │ │ │ ├── test │ │ │ │ ├── __init__.py │ │ │ │ └── support.py │ │ │ ├── tkinter │ │ │ │ ├── __init__.py │ │ │ │ ├── colorchooser.py │ │ │ │ ├── commondialog.py │ │ │ │ ├── constants.py │ │ │ │ ├── dialog.py │ │ │ │ ├── dnd.py │ │ │ │ ├── filedialog.py │ │ │ │ ├── font.py │ │ │ │ ├── messagebox.py │ │ │ │ ├── scrolledtext.py │ │ │ │ ├── simpledialog.py │ │ │ │ ├── tix.py │ │ │ │ └── ttk.py │ │ │ ├── urllib │ │ │ │ ├── __init__.py │ │ │ │ ├── error.py │ │ │ │ ├── parse.py │ │ │ │ ├── request.py │ │ │ │ ├── response.py │ │ │ │ └── robotparser.py │ │ │ ├── winreg.py │ │ │ └── xmlrpc │ │ │ │ ├── __init__.py │ │ │ │ ├── client.py │ │ │ │ └── server.py │ │ ├── standard_library │ │ │ └── __init__.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ └── base.py │ │ ├── types │ │ │ ├── __init__.py │ │ │ ├── newbytes.py │ │ │ ├── newdict.py │ │ │ ├── newint.py │ │ │ ├── newlist.py │ │ │ ├── newmemoryview.py │ │ │ ├── newobject.py │ │ │ ├── newopen.py │ │ │ ├── newrange.py │ │ │ └── newstr.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ └── surrogateescape.py │ │ ├── idna-2.10.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── idna │ │ ├── __init__.py │ │ ├── codec.py │ │ ├── compat.py │ │ ├── core.py │ │ ├── idnadata.py │ │ ├── intranges.py │ │ ├── package_data.py │ │ └── uts46data.py │ │ ├── itsdangerous-1.1.0.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.rst │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── itsdangerous │ │ ├── __init__.py │ │ ├── _compat.py │ │ ├── _json.py │ │ ├── encoding.py │ │ ├── exc.py │ │ ├── jws.py │ │ ├── serializer.py │ │ ├── signer.py │ │ ├── timed.py │ │ └── url_safe.py │ │ ├── jinja2 │ │ ├── __init__.py │ │ ├── _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 │ │ ├── jwt │ │ ├── __init__.py │ │ ├── algorithms.py │ │ ├── api_jwk.py │ │ ├── api_jws.py │ │ ├── api_jwt.py │ │ ├── exceptions.py │ │ ├── help.py │ │ ├── jwks_client.py │ │ ├── py.typed │ │ └── utils.py │ │ ├── libfuturize │ │ ├── __init__.py │ │ ├── fixer_util.py │ │ ├── fixes │ │ │ ├── __init__.py │ │ │ ├── fix_UserDict.py │ │ │ ├── fix_absolute_import.py │ │ │ ├── fix_add__future__imports_except_unicode_literals.py │ │ │ ├── fix_basestring.py │ │ │ ├── fix_bytes.py │ │ │ ├── fix_cmp.py │ │ │ ├── fix_division.py │ │ │ ├── fix_division_safe.py │ │ │ ├── fix_execfile.py │ │ │ ├── fix_future_builtins.py │ │ │ ├── fix_future_standard_library.py │ │ │ ├── fix_future_standard_library_urllib.py │ │ │ ├── fix_input.py │ │ │ ├── fix_metaclass.py │ │ │ ├── fix_next_call.py │ │ │ ├── fix_object.py │ │ │ ├── fix_oldstr_wrap.py │ │ │ ├── fix_order___future__imports.py │ │ │ ├── fix_print.py │ │ │ ├── fix_print_with_import.py │ │ │ ├── fix_raise.py │ │ │ ├── fix_remove_old__future__imports.py │ │ │ ├── fix_unicode_keep_u.py │ │ │ ├── fix_unicode_literals_import.py │ │ │ └── fix_xrange_with_import.py │ │ └── main.py │ │ ├── libpasteurize │ │ ├── __init__.py │ │ ├── fixes │ │ │ ├── __init__.py │ │ │ ├── feature_base.py │ │ │ ├── fix_add_all__future__imports.py │ │ │ ├── fix_add_all_future_builtins.py │ │ │ ├── fix_add_future_standard_library_import.py │ │ │ ├── fix_annotations.py │ │ │ ├── fix_division.py │ │ │ ├── fix_features.py │ │ │ ├── fix_fullargspec.py │ │ │ ├── fix_future_builtins.py │ │ │ ├── fix_getcwd.py │ │ │ ├── fix_imports.py │ │ │ ├── fix_imports2.py │ │ │ ├── fix_kwargs.py │ │ │ ├── fix_memoryview.py │ │ │ ├── fix_metaclass.py │ │ │ ├── fix_newstyle.py │ │ │ ├── fix_next.py │ │ │ ├── fix_printfunction.py │ │ │ ├── fix_raise.py │ │ │ ├── fix_raise_.py │ │ │ ├── fix_throw.py │ │ │ └── fix_unpacking.py │ │ └── main.py │ │ ├── markupsafe │ │ ├── __init__.py │ │ ├── _compat.py │ │ ├── _constants.py │ │ ├── _native.py │ │ ├── _speedups.c │ │ └── _speedups.cpython-39-darwin.so │ │ ├── netifaces-0.10.9-py3.9.egg-info │ │ ├── PKG-INFO │ │ ├── SOURCES.txt │ │ ├── dependency_links.txt │ │ ├── installed-files.txt │ │ ├── top_level.txt │ │ └── zip-safe │ │ ├── netifaces.cpython-39-darwin.so │ │ ├── paho │ │ ├── __init__.py │ │ └── mqtt │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ ├── matcher.py │ │ │ ├── packettypes.py │ │ │ ├── properties.py │ │ │ ├── publish.py │ │ │ ├── reasoncodes.py │ │ │ ├── subscribe.py │ │ │ └── subscribeoptions.py │ │ ├── paho_mqtt-1.5.1-py3.9.egg-info │ │ ├── PKG-INFO │ │ ├── SOURCES.txt │ │ ├── dependency_links.txt │ │ ├── installed-files.txt │ │ ├── not-zip-safe │ │ ├── requires.txt │ │ └── top_level.txt │ │ ├── past │ │ ├── __init__.py │ │ ├── builtins │ │ │ ├── __init__.py │ │ │ ├── misc.py │ │ │ └── noniterators.py │ │ ├── translation │ │ │ └── __init__.py │ │ ├── types │ │ │ ├── __init__.py │ │ │ ├── basestring.py │ │ │ ├── olddict.py │ │ │ └── oldstr.py │ │ └── utils │ │ │ └── __init__.py │ │ ├── pip-21.0.1.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE.txt │ │ ├── METADATA │ │ ├── RECORD │ │ ├── REQUESTED │ │ ├── WHEEL │ │ ├── entry_points.txt │ │ └── 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 │ │ │ │ ├── command_context.py │ │ │ │ ├── main.py │ │ │ │ ├── main_parser.py │ │ │ │ ├── parser.py │ │ │ │ ├── progress_bars.py │ │ │ │ ├── req_command.py │ │ │ │ ├── spinners.py │ │ │ │ └── status_codes.py │ │ │ ├── commands │ │ │ │ ├── __init__.py │ │ │ │ ├── cache.py │ │ │ │ ├── check.py │ │ │ │ ├── completion.py │ │ │ │ ├── configuration.py │ │ │ │ ├── debug.py │ │ │ │ ├── download.py │ │ │ │ ├── freeze.py │ │ │ │ ├── hash.py │ │ │ │ ├── help.py │ │ │ │ ├── install.py │ │ │ │ ├── list.py │ │ │ │ ├── search.py │ │ │ │ ├── show.py │ │ │ │ ├── uninstall.py │ │ │ │ └── wheel.py │ │ │ ├── configuration.py │ │ │ ├── distributions │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── installed.py │ │ │ │ ├── sdist.py │ │ │ │ └── wheel.py │ │ │ ├── exceptions.py │ │ │ ├── index │ │ │ │ ├── __init__.py │ │ │ │ ├── collector.py │ │ │ │ └── package_finder.py │ │ │ ├── locations.py │ │ │ ├── main.py │ │ │ ├── models │ │ │ │ ├── __init__.py │ │ │ │ ├── candidate.py │ │ │ │ ├── direct_url.py │ │ │ │ ├── format_control.py │ │ │ │ ├── index.py │ │ │ │ ├── link.py │ │ │ │ ├── scheme.py │ │ │ │ ├── search_scope.py │ │ │ │ ├── selection_prefs.py │ │ │ │ ├── target_python.py │ │ │ │ └── wheel.py │ │ │ ├── network │ │ │ │ ├── __init__.py │ │ │ │ ├── auth.py │ │ │ │ ├── cache.py │ │ │ │ ├── download.py │ │ │ │ ├── lazy_wheel.py │ │ │ │ ├── session.py │ │ │ │ ├── utils.py │ │ │ │ └── xmlrpc.py │ │ │ ├── operations │ │ │ │ ├── __init__.py │ │ │ │ ├── build │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── metadata.py │ │ │ │ │ ├── metadata_legacy.py │ │ │ │ │ ├── wheel.py │ │ │ │ │ └── wheel_legacy.py │ │ │ │ ├── check.py │ │ │ │ ├── freeze.py │ │ │ │ ├── install │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── editable_legacy.py │ │ │ │ │ ├── legacy.py │ │ │ │ │ └── wheel.py │ │ │ │ └── prepare.py │ │ │ ├── pyproject.py │ │ │ ├── req │ │ │ │ ├── __init__.py │ │ │ │ ├── constructors.py │ │ │ │ ├── req_file.py │ │ │ │ ├── req_install.py │ │ │ │ ├── req_set.py │ │ │ │ ├── req_tracker.py │ │ │ │ └── req_uninstall.py │ │ │ ├── resolution │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── legacy │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── resolver.py │ │ │ │ └── resolvelib │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── candidates.py │ │ │ │ │ ├── factory.py │ │ │ │ │ ├── found_candidates.py │ │ │ │ │ ├── provider.py │ │ │ │ │ ├── reporter.py │ │ │ │ │ ├── requirements.py │ │ │ │ │ └── resolver.py │ │ │ ├── self_outdated_check.py │ │ │ ├── utils │ │ │ │ ├── __init__.py │ │ │ │ ├── appdirs.py │ │ │ │ ├── compat.py │ │ │ │ ├── compatibility_tags.py │ │ │ │ ├── datetime.py │ │ │ │ ├── deprecation.py │ │ │ │ ├── direct_url_helpers.py │ │ │ │ ├── distutils_args.py │ │ │ │ ├── encoding.py │ │ │ │ ├── entrypoints.py │ │ │ │ ├── filesystem.py │ │ │ │ ├── filetypes.py │ │ │ │ ├── glibc.py │ │ │ │ ├── hashes.py │ │ │ │ ├── inject_securetransport.py │ │ │ │ ├── logging.py │ │ │ │ ├── misc.py │ │ │ │ ├── models.py │ │ │ │ ├── packaging.py │ │ │ │ ├── parallel.py │ │ │ │ ├── pkg_resources.py │ │ │ │ ├── setuptools_build.py │ │ │ │ ├── subprocess.py │ │ │ │ ├── temp_dir.py │ │ │ │ ├── typing.py │ │ │ │ ├── unpacking.py │ │ │ │ ├── urls.py │ │ │ │ ├── virtualenv.py │ │ │ │ └── wheel.py │ │ │ ├── vcs │ │ │ │ ├── __init__.py │ │ │ │ ├── bazaar.py │ │ │ │ ├── git.py │ │ │ │ ├── mercurial.py │ │ │ │ ├── subversion.py │ │ │ │ └── versioncontrol.py │ │ │ └── wheel_builder.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 │ │ │ ├── langgreekmodel.py │ │ │ ├── langhebrewmodel.py │ │ │ ├── langhungarianmodel.py │ │ │ ├── langrussianmodel.py │ │ │ ├── langthaimodel.py │ │ │ ├── langturkishmodel.py │ │ │ ├── latin1prober.py │ │ │ ├── mbcharsetprober.py │ │ │ ├── mbcsgroupprober.py │ │ │ ├── mbcssm.py │ │ │ ├── metadata │ │ │ │ ├── __init__.py │ │ │ │ └── languages.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 │ │ │ ├── contextlib2.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 │ │ │ │ └── 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 │ │ │ ├── msgpack │ │ │ ├── __init__.py │ │ │ ├── _version.py │ │ │ ├── exceptions.py │ │ │ ├── ext.py │ │ │ └── fallback.py │ │ │ ├── packaging │ │ │ ├── __about__.py │ │ │ ├── __init__.py │ │ │ ├── _compat.py │ │ │ ├── _structures.py │ │ │ ├── _typing.py │ │ │ ├── markers.py │ │ │ ├── requirements.py │ │ │ ├── specifiers.py │ │ │ ├── tags.py │ │ │ ├── utils.py │ │ │ └── version.py │ │ │ ├── pep517 │ │ │ ├── __init__.py │ │ │ ├── _in_process.py │ │ │ ├── build.py │ │ │ ├── check.py │ │ │ ├── colorlog.py │ │ │ ├── compat.py │ │ │ ├── dirtools.py │ │ │ ├── envbuild.py │ │ │ ├── meta.py │ │ │ └── wrappers.py │ │ │ ├── pkg_resources │ │ │ ├── __init__.py │ │ │ └── py31compat.py │ │ │ ├── progress │ │ │ ├── __init__.py │ │ │ ├── bar.py │ │ │ ├── counter.py │ │ │ └── spinner.py │ │ │ ├── pyparsing.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 │ │ │ ├── resolvelib │ │ │ ├── __init__.py │ │ │ ├── compat │ │ │ │ ├── __init__.py │ │ │ │ └── collections_abc.py │ │ │ ├── providers.py │ │ │ ├── reporters.py │ │ │ ├── resolvers.py │ │ │ └── structs.py │ │ │ ├── retrying.py │ │ │ ├── six.py │ │ │ ├── toml │ │ │ ├── __init__.py │ │ │ ├── decoder.py │ │ │ ├── encoder.py │ │ │ ├── ordered.py │ │ │ └── tz.py │ │ │ ├── urllib3 │ │ │ ├── __init__.py │ │ │ ├── _collections.py │ │ │ ├── _version.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 │ │ │ │ ├── proxy.py │ │ │ │ ├── queue.py │ │ │ │ ├── request.py │ │ │ │ ├── response.py │ │ │ │ ├── retry.py │ │ │ │ ├── ssl_.py │ │ │ │ ├── ssltransport.py │ │ │ │ ├── timeout.py │ │ │ │ ├── url.py │ │ │ │ └── wait.py │ │ │ ├── vendor.txt │ │ │ └── webencodings │ │ │ ├── __init__.py │ │ │ ├── labels.py │ │ │ ├── mklabels.py │ │ │ ├── tests.py │ │ │ └── x_user_defined.py │ │ ├── pkg_resources │ │ ├── __init__.py │ │ ├── _vendor │ │ │ ├── __init__.py │ │ │ ├── appdirs.py │ │ │ ├── packaging │ │ │ │ ├── __about__.py │ │ │ │ ├── __init__.py │ │ │ │ ├── _compat.py │ │ │ │ ├── _structures.py │ │ │ │ ├── _typing.py │ │ │ │ ├── markers.py │ │ │ │ ├── requirements.py │ │ │ │ ├── specifiers.py │ │ │ │ ├── tags.py │ │ │ │ ├── utils.py │ │ │ │ └── version.py │ │ │ └── pyparsing.py │ │ ├── extern │ │ │ └── __init__.py │ │ └── tests │ │ │ └── data │ │ │ └── my-test-package-source │ │ │ └── setup.py │ │ ├── requests-2.25.1.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── REQUESTED │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── 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 │ │ ├── requests_toolbelt-0.9.1.dist-info │ │ ├── AUTHORS.rst │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── REQUESTED │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── requests_toolbelt │ │ ├── __init__.py │ │ ├── _compat.py │ │ ├── adapters │ │ │ ├── __init__.py │ │ │ ├── appengine.py │ │ │ ├── fingerprint.py │ │ │ ├── host_header_ssl.py │ │ │ ├── socket_options.py │ │ │ ├── source.py │ │ │ ├── ssl.py │ │ │ └── x509.py │ │ ├── auth │ │ │ ├── __init__.py │ │ │ ├── _digest_auth_compat.py │ │ │ ├── guess.py │ │ │ ├── handler.py │ │ │ └── http_proxy_digest.py │ │ ├── cookies │ │ │ ├── __init__.py │ │ │ └── forgetful.py │ │ ├── downloadutils │ │ │ ├── __init__.py │ │ │ ├── stream.py │ │ │ └── tee.py │ │ ├── exceptions.py │ │ ├── multipart │ │ │ ├── __init__.py │ │ │ ├── decoder.py │ │ │ └── encoder.py │ │ ├── sessions.py │ │ ├── streaming_iterator.py │ │ ├── threaded │ │ │ ├── __init__.py │ │ │ ├── pool.py │ │ │ └── thread.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── deprecated.py │ │ │ ├── dump.py │ │ │ ├── formdata.py │ │ │ └── user_agent.py │ │ ├── setuptools-53.0.0.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── REQUESTED │ │ ├── WHEEL │ │ ├── dependency_links.txt │ │ ├── entry_points.txt │ │ └── top_level.txt │ │ ├── setuptools │ │ ├── __init__.py │ │ ├── _deprecation_warning.py │ │ ├── _distutils │ │ │ ├── __init__.py │ │ │ ├── _msvccompiler.py │ │ │ ├── archive_util.py │ │ │ ├── bcppcompiler.py │ │ │ ├── ccompiler.py │ │ │ ├── cmd.py │ │ │ ├── command │ │ │ │ ├── __init__.py │ │ │ │ ├── bdist.py │ │ │ │ ├── bdist_dumb.py │ │ │ │ ├── bdist_msi.py │ │ │ │ ├── bdist_rpm.py │ │ │ │ ├── bdist_wininst.py │ │ │ │ ├── build.py │ │ │ │ ├── build_clib.py │ │ │ │ ├── build_ext.py │ │ │ │ ├── build_py.py │ │ │ │ ├── build_scripts.py │ │ │ │ ├── check.py │ │ │ │ ├── clean.py │ │ │ │ ├── config.py │ │ │ │ ├── install.py │ │ │ │ ├── install_data.py │ │ │ │ ├── install_egg_info.py │ │ │ │ ├── install_headers.py │ │ │ │ ├── install_lib.py │ │ │ │ ├── install_scripts.py │ │ │ │ ├── py37compat.py │ │ │ │ ├── register.py │ │ │ │ ├── sdist.py │ │ │ │ └── upload.py │ │ │ ├── config.py │ │ │ ├── core.py │ │ │ ├── cygwinccompiler.py │ │ │ ├── debug.py │ │ │ ├── dep_util.py │ │ │ ├── dir_util.py │ │ │ ├── dist.py │ │ │ ├── errors.py │ │ │ ├── extension.py │ │ │ ├── fancy_getopt.py │ │ │ ├── file_util.py │ │ │ ├── filelist.py │ │ │ ├── log.py │ │ │ ├── msvc9compiler.py │ │ │ ├── msvccompiler.py │ │ │ ├── py35compat.py │ │ │ ├── py38compat.py │ │ │ ├── spawn.py │ │ │ ├── sysconfig.py │ │ │ ├── text_file.py │ │ │ ├── unixccompiler.py │ │ │ ├── util.py │ │ │ ├── version.py │ │ │ └── versionpredicate.py │ │ ├── _imp.py │ │ ├── _vendor │ │ │ ├── __init__.py │ │ │ ├── ordered_set.py │ │ │ ├── packaging │ │ │ │ ├── __about__.py │ │ │ │ ├── __init__.py │ │ │ │ ├── _compat.py │ │ │ │ ├── _structures.py │ │ │ │ ├── _typing.py │ │ │ │ ├── markers.py │ │ │ │ ├── requirements.py │ │ │ │ ├── specifiers.py │ │ │ │ ├── tags.py │ │ │ │ ├── utils.py │ │ │ │ └── version.py │ │ │ └── pyparsing.py │ │ ├── archive_util.py │ │ ├── build_meta.py │ │ ├── cli-32.exe │ │ ├── cli-64.exe │ │ ├── cli.exe │ │ ├── command │ │ │ ├── __init__.py │ │ │ ├── alias.py │ │ │ ├── bdist_egg.py │ │ │ ├── bdist_rpm.py │ │ │ ├── bdist_wininst.py │ │ │ ├── build_clib.py │ │ │ ├── build_ext.py │ │ │ ├── build_py.py │ │ │ ├── develop.py │ │ │ ├── dist_info.py │ │ │ ├── easy_install.py │ │ │ ├── egg_info.py │ │ │ ├── install.py │ │ │ ├── install_egg_info.py │ │ │ ├── install_lib.py │ │ │ ├── install_scripts.py │ │ │ ├── launcher manifest.xml │ │ │ ├── py36compat.py │ │ │ ├── register.py │ │ │ ├── rotate.py │ │ │ ├── saveopts.py │ │ │ ├── sdist.py │ │ │ ├── setopt.py │ │ │ ├── test.py │ │ │ ├── upload.py │ │ │ └── upload_docs.py │ │ ├── config.py │ │ ├── dep_util.py │ │ ├── depends.py │ │ ├── dist.py │ │ ├── errors.py │ │ ├── extension.py │ │ ├── extern │ │ │ └── __init__.py │ │ ├── glob.py │ │ ├── gui-32.exe │ │ ├── gui-64.exe │ │ ├── gui.exe │ │ ├── installer.py │ │ ├── launch.py │ │ ├── lib2to3_ex.py │ │ ├── monkey.py │ │ ├── msvc.py │ │ ├── namespaces.py │ │ ├── package_index.py │ │ ├── py34compat.py │ │ ├── sandbox.py │ │ ├── script (dev).tmpl │ │ ├── script.tmpl │ │ ├── ssl_support.py │ │ ├── unicode_utils.py │ │ ├── version.py │ │ ├── wheel.py │ │ └── windows_support.py │ │ ├── urllib3-1.26.4.dist-info │ │ ├── DESCRIPTION.rst │ │ ├── INSTALLER │ │ ├── LICENSE.txt │ │ ├── METADATA │ │ ├── RECORD │ │ ├── WHEEL │ │ ├── metadata.json │ │ └── top_level.txt │ │ ├── urllib3 │ │ ├── __init__.py │ │ ├── _collections.py │ │ ├── _version.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 │ │ │ ├── proxy.py │ │ │ ├── queue.py │ │ │ ├── request.py │ │ │ ├── response.py │ │ │ ├── retry.py │ │ │ ├── ssl_.py │ │ │ ├── ssltransport.py │ │ │ ├── timeout.py │ │ │ ├── url.py │ │ │ └── wait.py │ │ ├── webexteamssdk-1.6.dist-info │ │ ├── INSTALLER │ │ ├── LICENSE │ │ ├── METADATA │ │ ├── RECORD │ │ ├── REQUESTED │ │ ├── WHEEL │ │ └── top_level.txt │ │ ├── webexteamssdk │ │ ├── __init__.py │ │ ├── _metadata.py │ │ ├── _version.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── access_tokens.py │ │ │ ├── admin_audit_events.py │ │ │ ├── attachment_actions.py │ │ │ ├── events.py │ │ │ ├── guest_issuer.py │ │ │ ├── licenses.py │ │ │ ├── memberships.py │ │ │ ├── messages.py │ │ │ ├── organizations.py │ │ │ ├── people.py │ │ │ ├── roles.py │ │ │ ├── rooms.py │ │ │ ├── team_memberships.py │ │ │ ├── teams.py │ │ │ └── webhooks.py │ │ ├── config.py │ │ ├── environment.py │ │ ├── exceptions.py │ │ ├── generator_containers.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── cards │ │ │ │ ├── __init__.py │ │ │ │ ├── actions.py │ │ │ │ ├── adaptive_card_component.py │ │ │ │ ├── card.py │ │ │ │ ├── components.py │ │ │ │ ├── container.py │ │ │ │ ├── inputs.py │ │ │ │ ├── options.py │ │ │ │ └── utils.py │ │ │ ├── dictionary.py │ │ │ ├── immutable.py │ │ │ ├── mixins │ │ │ │ ├── __init__.py │ │ │ │ ├── access_token.py │ │ │ │ ├── admin_audit_event.py │ │ │ │ ├── attachment_action.py │ │ │ │ ├── event.py │ │ │ │ ├── guest_issuer_token.py │ │ │ │ ├── license.py │ │ │ │ ├── membership.py │ │ │ │ ├── message.py │ │ │ │ ├── organization.py │ │ │ │ ├── person.py │ │ │ │ ├── role.py │ │ │ │ ├── room.py │ │ │ │ ├── room_meeting_info.py │ │ │ │ ├── team.py │ │ │ │ ├── team_membership.py │ │ │ │ ├── webhook.py │ │ │ │ └── webhook_event.py │ │ │ └── simple.py │ │ ├── response_codes.py │ │ ├── restsession.py │ │ └── utils.py │ │ └── werkzeug │ │ ├── __init__.py │ │ ├── _compat.py │ │ ├── _internal.py │ │ ├── _reloader.py │ │ ├── datastructures.py │ │ ├── debug │ │ ├── __init__.py │ │ ├── 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 │ │ ├── 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 │ │ ├── accept.py │ │ ├── auth.py │ │ ├── base_request.py │ │ ├── base_response.py │ │ ├── common_descriptors.py │ │ ├── cors.py │ │ ├── etag.py │ │ ├── json.py │ │ ├── request.py │ │ ├── response.py │ │ └── user_agent.py │ │ └── wsgi.py └── pyvenv.cfg └── verify.py /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .vscode 3 | __pycache__ 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Cisco and/or its affiliates. 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 | 23 | -------------------------------------------------------------------------------- /intro-python/git-basics/change_me.txt: -------------------------------------------------------------------------------- 1 | If you change even one character in this file... Git will know. 2 | -------------------------------------------------------------------------------- /intro-python/parsing-json/interface-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ietf-interfaces:interface": { 3 | "name": "GigabitEthernet2", 4 | "description": "Wide Area Network", 5 | "enabled": true, 6 | "ietf-ip:ipv4": { 7 | "address": [ 8 | { 9 | "ip": "172.16.0.2", 10 | "netmask": "255.255.255.0" 11 | } 12 | ] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /intro-python/parsing-json/pep20.txt: -------------------------------------------------------------------------------- 1 | Beautiful is better than ugly. 2 | Explicit is better than implicit. 3 | Simple is better than complex. 4 | Complex is better than complicated. 5 | Flat is better than nested. 6 | Sparse is better than dense. 7 | Readability counts. 8 | Special cases aren't special enough to break the rules. 9 | Although practicality beats purity. 10 | Errors should never pass silently. 11 | Unless explicitly silenced. 12 | In the face of ambiguity, refuse the temptation to guess. 13 | There should be one-- and preferably only one --obvious way to do it. 14 | Although that way may not be obvious at first unless you're Dutch. 15 | Now is better than never. 16 | Although never is often better than *right* now. 17 | If the implementation is hard to explain, it's a bad idea. 18 | If the implementation is easy to explain, it may be a good idea. 19 | Namespaces are one honking great idea -- let's do more of those! 20 | -------------------------------------------------------------------------------- /meraki-captive-portal/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | -------------------------------------------------------------------------------- /meraki-location-scanning-python/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | -------------------------------------------------------------------------------- /meraki-location-scanning-python/static/FiraGranVia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/meraki-location-scanning-python/static/FiraGranVia.png -------------------------------------------------------------------------------- /meraki-location-scanning-python/static/blue_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/meraki-location-scanning-python/static/blue_circle.png -------------------------------------------------------------------------------- /meraki-mission-1/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | requests==2.22.0 3 | requests-toolbelt==0.9.1 4 | webexteamssdk==1.2 5 | -------------------------------------------------------------------------------- /meraki-mission-2/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | requests==2.22.0 3 | requests-toolbelt==0.9.1 4 | webexteamssdk==1.2 5 | -------------------------------------------------------------------------------- /meraki-mission-3/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | requests==2.22.0 3 | webexteamssdk==1.2 4 | -------------------------------------------------------------------------------- /meraki-mv-sense/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | paho-mqtt==1.5.0 3 | requests==2.22.0 4 | requests-toolbelt==0.9.1 5 | webexteamssdk==1.2 6 | -------------------------------------------------------------------------------- /meraki-webhooks/README.md: -------------------------------------------------------------------------------- 1 | # meraki_webhook_sample_webex_teams 2 | Sample Meraki Service That Posts to WebEx Teams 3 | -------------------------------------------------------------------------------- /meraki-webhooks/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | requests==2.22.0 3 | requests-toolbelt==0.9.1 4 | webexteamssdk==1.2 5 | -------------------------------------------------------------------------------- /meraki_cloud_simulator/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7-alpine 2 | 3 | COPY . . 4 | 5 | RUN pip install -r requirements.txt 6 | 7 | EXPOSE 5001 8 | 9 | ENTRYPOINT ["python", "meraki_cloud_simulator.py"] -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-captive-portal/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7-alpine 2 | 3 | COPY . . 4 | 5 | RUN pip install -r requirements.txt 6 | 7 | EXPOSE 5004 8 | 9 | CMD ["python", "meraki_sample_captive_portal.py", "-n", "Simulated Network", "-s", "Simulated SSID", "-p", "simulatedpassword"] -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-captive-portal/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | requests==2.22.0 3 | webexteamssdk==1.2 4 | -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-location-scanning-receiver/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7-alpine 2 | 3 | COPY . . 4 | 5 | RUN pip install -r requirements.txt 6 | 7 | EXPOSE 5002 8 | 9 | CMD ["python", "meraki_sample_location_scanning_receiver.py", "-v", "simulator", "-s", "simulator"] -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-location-scanning-receiver/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.1 2 | -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-location-scanning-receiver/static/FiraGranVia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/meraki_cloud_simulator/meraki-sample-location-scanning-receiver/static/FiraGranVia.png -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-location-scanning-receiver/static/blue_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/meraki_cloud_simulator/meraki-sample-location-scanning-receiver/static/blue_circle.png -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-webhook-receiver/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7-alpine 2 | 3 | COPY . . 4 | 5 | RUN pip install -r requirements.txt 6 | 7 | EXPOSE 5005 8 | 9 | CMD ["python", "meraki_sample_webhook_receiver.py", "-n", "Simulated Network", "-s", "webbie", "-m", "Webbie"] -------------------------------------------------------------------------------- /meraki_cloud_simulator/meraki-sample-webhook-receiver/requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | requests-toolbelt 3 | Flask 4 | webexteamssdk 5 | -------------------------------------------------------------------------------- /meraki_cloud_simulator/merakicloudsimulator/__init__.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, request, render_template, redirect, jsonify, abort 2 | 3 | merakicloudsimulator = Flask(__name__, static_url_path='/5001/static') 4 | 5 | from merakicloudsimulator import meraki_settings 6 | from merakicloudsimulator import alert_settings 7 | from merakicloudsimulator import sample_alert_messages 8 | from merakicloudsimulator import excapsimulator 9 | from merakicloudsimulator import locationscanningsimulator 10 | from merakicloudsimulator import webhooksimulator 11 | -------------------------------------------------------------------------------- /meraki_cloud_simulator/merakicloudsimulator/meraki_settings.py: -------------------------------------------------------------------------------- 1 | ORGANIZATIONS = [{"id": "1234567", "name": "Simulated Organization"}] 2 | 3 | # Networks indexed by organization ID. 4 | NETWORKS = { 5 | "1234567": [ 6 | { 7 | "id": "L_12345678910", 8 | "organizationId": "1234567", 9 | "name": "Simulated Network", 10 | "timeZone": "America/New_York", 11 | "tags": "", 12 | "productTypes": ["appliance", "switch", "wireless"], 13 | "type": "combined", 14 | "disableMyMerakiCom": False, 15 | "disableRemoteStatusPage": True, 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /meraki_cloud_simulator/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask 2 | requests -------------------------------------------------------------------------------- /meraki_cloud_simulator/wt_vars.env: -------------------------------------------------------------------------------- 1 | WT_ACCESS_TOKEN= 2 | WT_ROOM_ID= -------------------------------------------------------------------------------- /postman/deckofcardsapi.postman_environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "c0f39bb9-81de-51d5-2eeb-c6ab08856f4a", 3 | "name": "deckOfCardsApi", 4 | "values": [ 5 | { 6 | "enabled": true, 7 | "key": "deck_id", 8 | "value": "ghndyy3ygexv", 9 | "type": "text" 10 | }, 11 | { 12 | "enabled": true, 13 | "key": "deck_id_blackjack", 14 | "value": "kumcct6f4gte", 15 | "type": "text" 16 | } 17 | ], 18 | "_postman_variable_scope": "environment", 19 | "_postman_exported_at": "2018-04-03T22:10:06.836Z", 20 | "_postman_exported_using": "Postman/6.0.10" 21 | } -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.1.2 2 | #netifaces==0.10.9 3 | waitress==2.0.0 4 | paho-mqtt==1.5.1 5 | requests==2.25.1 6 | requests-toolbelt==0.9.1 7 | webexteamssdk==1.6 8 | Werkzeug==2.2.2 9 | -------------------------------------------------------------------------------- /rest-api/postman/deckofcardsapi.postman_environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "c0f39bb9-81de-51d5-2eeb-c6ab08856f4a", 3 | "name": "deckOfCardsApi", 4 | "values": [ 5 | { 6 | "enabled": true, 7 | "key": "deck_id", 8 | "value": "ghndyy3ygexv", 9 | "type": "text" 10 | }, 11 | { 12 | "enabled": true, 13 | "key": "deck_id_blackjack", 14 | "value": "kumcct6f4gte", 15 | "type": "text" 16 | } 17 | ], 18 | "_postman_variable_scope": "environment", 19 | "_postman_exported_at": "2018-04-03T22:10:06.836Z", 20 | "_postman_exported_using": "Postman/6.0.10" 21 | } -------------------------------------------------------------------------------- /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 "/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/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 | set prompt = "(venv) $prompt" 21 | endif 22 | 23 | alias pydoc python -m pydoc 24 | 25 | rehash 26 | -------------------------------------------------------------------------------- /venv/bin/chardetect: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from chardet.cli.chardetect import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /venv/bin/flask: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from flask.cli import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /venv/bin/futurize: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # EASY-INSTALL-ENTRY-SCRIPT: 'future==0.18.2','console_scripts','futurize' 3 | import re 4 | import sys 5 | 6 | # for compatibility with easy_install; see #2198 7 | __requires__ = 'future==0.18.2' 8 | 9 | try: 10 | from importlib.metadata import distribution 11 | except ImportError: 12 | try: 13 | from importlib_metadata import distribution 14 | except ImportError: 15 | from pkg_resources import load_entry_point 16 | 17 | 18 | def importlib_load_entry_point(spec, group, name): 19 | dist_name, _, _ = spec.partition('==') 20 | matches = ( 21 | entry_point 22 | for entry_point in distribution(dist_name).entry_points 23 | if entry_point.group == group and entry_point.name == name 24 | ) 25 | return next(matches).load() 26 | 27 | 28 | globals().setdefault('load_entry_point', importlib_load_entry_point) 29 | 30 | 31 | if __name__ == '__main__': 32 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) 33 | sys.exit(load_entry_point('future==0.18.2', 'console_scripts', 'futurize')()) 34 | -------------------------------------------------------------------------------- /venv/bin/pasteurize: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # EASY-INSTALL-ENTRY-SCRIPT: 'future==0.18.2','console_scripts','pasteurize' 3 | import re 4 | import sys 5 | 6 | # for compatibility with easy_install; see #2198 7 | __requires__ = 'future==0.18.2' 8 | 9 | try: 10 | from importlib.metadata import distribution 11 | except ImportError: 12 | try: 13 | from importlib_metadata import distribution 14 | except ImportError: 15 | from pkg_resources import load_entry_point 16 | 17 | 18 | def importlib_load_entry_point(spec, group, name): 19 | dist_name, _, _ = spec.partition('==') 20 | matches = ( 21 | entry_point 22 | for entry_point in distribution(dist_name).entry_points 23 | if entry_point.group == group and entry_point.name == name 24 | ) 25 | return next(matches).load() 26 | 27 | 28 | globals().setdefault('load_entry_point', importlib_load_entry_point) 29 | 30 | 31 | if __name__ == '__main__': 32 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) 33 | sys.exit(load_entry_point('future==0.18.2', 'console_scripts', 'pasteurize')()) 34 | -------------------------------------------------------------------------------- /venv/bin/pip: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from pip._internal.cli.main import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /venv/bin/pip3: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from pip._internal.cli.main import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /venv/bin/pip3.9: -------------------------------------------------------------------------------- 1 | #!/Users/agentle/src/ciscodevnet/dne-reboot/dne-code/meraki-code/venv/bin/python 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from pip._internal.cli.main import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /venv/bin/python: -------------------------------------------------------------------------------- 1 | /usr/local/Cellar/python@3.9/3.9.2_1/libexec/bin/python -------------------------------------------------------------------------------- /venv/bin/python3: -------------------------------------------------------------------------------- 1 | python -------------------------------------------------------------------------------- /venv/bin/python3.9: -------------------------------------------------------------------------------- 1 | python -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Flask-1.1.2.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Flask-1.1.2.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/Flask-1.1.2.dist-info/REQUESTED -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Flask-1.1.2.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.33.6) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Flask-1.1.2.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | flask = flask.cli:main 3 | 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Flask-1.1.2.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | flask 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Jinja2-2.11.3.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Jinja2-2.11.3.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Jinja2-2.11.3.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [babel.extractors] 2 | jinja2 = jinja2.ext:babel_extract [i18n] 3 | 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Jinja2-2.11.3.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | jinja2 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/MarkupSafe-1.1.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/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.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 3 | MarkupSafe-1.1.1.dist-info/METADATA,sha256=-XXnVvCxQP2QbHutIQq_7Pk9OATy-x0NC7gN_3_SCRE,3167 4 | MarkupSafe-1.1.1.dist-info/RECORD,, 5 | MarkupSafe-1.1.1.dist-info/WHEEL,sha256=bRe_g_g-vZInZP5wOdewl-4AeWx8E2_UC3Ffr2csPyk,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-39.pyc,, 9 | markupsafe/__pycache__/_compat.cpython-39.pyc,, 10 | markupsafe/__pycache__/_constants.cpython-39.pyc,, 11 | markupsafe/__pycache__/_native.cpython-39.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-39-darwin.so,sha256=6pV4w38f3OduU0ZOZKLTJSqTak4UPPIW_FkIrMdXpJE,35224 17 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/MarkupSafe-1.1.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: false 4 | Tag: cp39-cp39-macosx_10_9_x86_64 5 | 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/MarkupSafe-1.1.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | markupsafe 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/PyJWT-2.0.1.dist-info/AUTHORS.rst: -------------------------------------------------------------------------------- 1 | Authors 2 | ======= 3 | 4 | ``pyjwt`` is currently written and maintained by `Jose Padilla `_. 5 | Originally written and maintained by `Jeff Lindsay `_. 6 | 7 | A full list of contributors can be found on GitHub’s `overview `_. 8 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/PyJWT-2.0.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/PyJWT-2.0.1.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 José Padilla 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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/PyJWT-2.0.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.35.1) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/PyJWT-2.0.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | jwt 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Werkzeug-1.0.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Werkzeug-1.0.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.34.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/Werkzeug-1.0.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | werkzeug 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/_distutils_hack/override.py: -------------------------------------------------------------------------------- 1 | __import__('_distutils_hack').do_override() 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | This packge contains a modified version of ca-bundle.crt: 2 | 3 | ca-bundle.crt -- Bundle of CA Root Certificates 4 | 5 | Certificate data from Mozilla as of: Thu Nov 3 19:04:19 2011# 6 | This is a bundle of X.509 certificates of public Certificate Authorities 7 | (CA). These were automatically extracted from Mozilla's root certificates 8 | file (certdata.txt). This file can be found in the mozilla source tree: 9 | http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1# 10 | It contains the certificates in PEM format and therefore 11 | can be directly used with curl / libcurl / php_curl, or with 12 | an Apache+mod_ssl webserver for SSL client authentication. 13 | Just configure this file as the SSLCACertificateFile.# 14 | 15 | ***** BEGIN LICENSE BLOCK ***** 16 | This Source Code Form is subject to the terms of the Mozilla Public License, 17 | v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain 18 | one at http://mozilla.org/MPL/2.0/. 19 | 20 | ***** END LICENSE BLOCK ***** 21 | @(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ 22 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | certifi-2020.12.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 2 | certifi-2020.12.5.dist-info/LICENSE,sha256=anCkv2sBABbVmmS4rkrY3H9e8W8ftFPMLs13HFo0ETE,1048 3 | certifi-2020.12.5.dist-info/METADATA,sha256=SEw5GGHIeBwGwDJsIUaVfEQAc5Jqs_XofOfTX-_kCE0,2994 4 | certifi-2020.12.5.dist-info/RECORD,, 5 | certifi-2020.12.5.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110 6 | certifi-2020.12.5.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 7 | certifi/__init__.py,sha256=SsmdmFHjHCY4VLtqwpp9P_jsOcAuHj-5c5WqoEz-oFg,62 8 | certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 9 | certifi/__pycache__/__init__.cpython-39.pyc,, 10 | certifi/__pycache__/__main__.cpython-39.pyc,, 11 | certifi/__pycache__/core.cpython-39.pyc,, 12 | certifi/cacert.pem,sha256=u3fxPT--yemLvyislQRrRBlsfY9Vq3cgBh6ZmRqCkZc,263774 13 | certifi/core.py,sha256=V0uyxKOYdz6ulDSusclrLmjbPgOXsD0BnEf0SQ7OnoE,2303 14 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.35.1) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | certifi 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import contents, where 2 | 3 | __version__ = "2020.12.05" 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/certifi/__main__.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | from certifi import contents, where 4 | 5 | parser = argparse.ArgumentParser() 6 | parser.add_argument("-c", "--contents", action="store_true") 7 | args = parser.parse_args() 8 | 9 | if args.contents: 10 | print(contents()) 11 | else: 12 | print(where()) 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.35.1) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | chardetect = chardet.cli.chardetect:main 3 | 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | chardet 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/chardet/cli/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/chardet/metadata/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/chardet/metadata/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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__ = "4.0.0" 9 | VERSION = __version__.split('.') 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/click-7.1.2.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/click-7.1.2.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.34.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/click-7.1.2.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | click 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/distutils-precedence.pth: -------------------------------------------------------------------------------- 1 | import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'stdlib') == 'local'; enabled and __import__('_distutils_hack').add_shim(); 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/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 Pallets 9 | :license: BSD-3-Clause 10 | """ 11 | 12 | if __name__ == "__main__": 13 | from .cli import main 14 | 15 | main(as_module=True) 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future-0.18.2-py3.9.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future-0.18.2-py3.9.egg-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | futurize = libfuturize.main:main 3 | pasteurize = libpasteurize.main:main 4 | 5 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future-0.18.2-py3.9.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | future 2 | libfuturize 3 | libpasteurize 4 | past 5 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | future.backports package 3 | """ 4 | 5 | from __future__ import absolute_import 6 | 7 | import sys 8 | 9 | __future_module__ = True 10 | from future.standard_library import import_top_level_modules 11 | 12 | 13 | if sys.version_info[0] >= 3: 14 | import_top_level_modules() 15 | 16 | 17 | from .misc import (ceil, 18 | OrderedDict, 19 | Counter, 20 | ChainMap, 21 | check_output, 22 | count, 23 | recursive_repr, 24 | _count_elements, 25 | cmp_to_key 26 | ) 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/email/mime/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/future/backports/email/mime/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/email/mime/base.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2001-2006 Python Software Foundation 2 | # Author: Barry Warsaw 3 | # Contact: email-sig@python.org 4 | 5 | """Base class for MIME specializations.""" 6 | from __future__ import absolute_import, division, unicode_literals 7 | from future.backports.email import message 8 | 9 | __all__ = ['MIMEBase'] 10 | 11 | 12 | class MIMEBase(message.Message): 13 | """Base class for MIME specializations.""" 14 | 15 | def __init__(self, _maintype, _subtype, **_params): 16 | """This constructor adds a Content-Type: and a MIME-Version: header. 17 | 18 | The Content-Type: header is taken from the _maintype and _subtype 19 | arguments. Additional parameters for this header are taken from the 20 | keyword arguments. 21 | """ 22 | message.Message.__init__(self) 23 | ctype = '%s/%s' % (_maintype, _subtype) 24 | self.add_header('Content-Type', ctype, **_params) 25 | self['MIME-Version'] = '1.0' 26 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/email/mime/nonmultipart.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2002-2006 Python Software Foundation 2 | # Author: Barry Warsaw 3 | # Contact: email-sig@python.org 4 | 5 | """Base class for MIME type messages that are not multipart.""" 6 | from __future__ import unicode_literals 7 | from __future__ import division 8 | from __future__ import absolute_import 9 | 10 | __all__ = ['MIMENonMultipart'] 11 | 12 | from future.backports.email import errors 13 | from future.backports.email.mime.base import MIMEBase 14 | 15 | 16 | class MIMENonMultipart(MIMEBase): 17 | """Base class for MIME multipart/* type messages.""" 18 | 19 | def attach(self, payload): 20 | # The public API prohibits attaching multiple subparts to MIMEBase 21 | # derived subtypes since none of them are, by definition, of content 22 | # type multipart/* 23 | raise errors.MultipartConversionError( 24 | 'Cannot attach additional subparts to non-multipart/*') 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/html/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | General functions for HTML manipulation, backported from Py3. 3 | 4 | Note that this uses Python 2.7 code with the corresponding Python 3 5 | module names and locations. 6 | """ 7 | 8 | from __future__ import unicode_literals 9 | 10 | 11 | _escape_map = {ord('&'): '&', ord('<'): '<', ord('>'): '>'} 12 | _escape_map_full = {ord('&'): '&', ord('<'): '<', ord('>'): '>', 13 | ord('"'): '"', ord('\''): '''} 14 | 15 | # NB: this is a candidate for a bytes/string polymorphic interface 16 | 17 | def escape(s, quote=True): 18 | """ 19 | Replace special characters "&", "<" and ">" to HTML-safe sequences. 20 | If the optional flag quote is true (the default), the quotation mark 21 | characters, both double quote (") and single quote (') characters are also 22 | translated. 23 | """ 24 | assert not isinstance(s, bytes), 'Pass a unicode string' 25 | if quote: 26 | return s.translate(_escape_map_full) 27 | return s.translate(_escape_map) 28 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/http/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/future/backports/http/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/test/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | test package backported for python-future. 3 | 4 | Its primary purpose is to allow use of "import test.support" for running 5 | the Python standard library unit tests using the new Python 3 stdlib 6 | import location. 7 | 8 | Python 3 renamed test.test_support to test.support. 9 | """ 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/test/dh512.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DH PARAMETERS----- 2 | MEYCQQD1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWak 3 | XUGfnHy9iUsiGSa6q6Jew1XpKgVfAgEC 4 | -----END DH PARAMETERS----- 5 | 6 | These are the 512 bit DH parameters from "Assigned Number for SKIP Protocols" 7 | (http://www.skip-vpn.org/spec/numbers.html). 8 | See there for how they were generated. 9 | Note that g is not a generator, but this is not a problem since p is a safe prime. 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/test/nullcert.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/future/backports/test/nullcert.pem -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/test/ssl_cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICVDCCAb2gAwIBAgIJANfHOBkZr8JOMA0GCSqGSIb3DQEBBQUAMF8xCzAJBgNV 3 | BAYTAlhZMRcwFQYDVQQHEw5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9u 4 | IFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xMDEw 5 | MDgyMzAxNTZaFw0yMDEwMDUyMzAxNTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQH 6 | Ew5DYXN0bGUgQW50aHJheDEjMCEGA1UEChMaUHl0aG9uIFNvZnR3YXJlIEZvdW5k 7 | YXRpb24xEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw 8 | gYkCgYEA21vT5isq7F68amYuuNpSFlKDPrMUCa4YWYqZRt2OZ+/3NKaZ2xAiSwr7 9 | 6MrQF70t5nLbSPpqE5+5VrS58SY+g/sXLiFd6AplH1wJZwh78DofbFYXUggktFMt 10 | pTyiX8jtP66bkcPkDADA089RI1TQR6Ca+n7HFa7c1fabVV6i3zkCAwEAAaMYMBYw 11 | FAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBBQUAA4GBAHPctQBEQ4wd 12 | BJ6+JcpIraopLn8BGhbjNWj40mmRqWB/NAWF6M5ne7KpGAu7tLeG4hb1zLaldK8G 13 | lxy2GPSRF6LFS48dpEj2HbMv2nvv6xxalDMJ9+DicWgAKTQ6bcX2j3GUkCR0g/T1 14 | CRlNBAAlvhKzO7Clpf9l0YKBEfraJByX 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/test/ssl_key.passwd.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,1A8D9D2A02EC698A 4 | 5 | kJYbfZ8L0sfe9Oty3gw0aloNnY5E8fegRfQLZlNoxTl6jNt0nIwI8kDJ36CZgR9c 6 | u3FDJm/KqrfUoz8vW+qEnWhSG7QPX2wWGPHd4K94Yz/FgrRzZ0DoK7XxXq9gOtVA 7 | AVGQhnz32p+6WhfGsCr9ArXEwRZrTk/FvzEPaU5fHcoSkrNVAGX8IpSVkSDwEDQr 8 | Gv17+cfk99UV1OCza6yKHoFkTtrC+PZU71LomBabivS2Oc4B9hYuSR2hF01wTHP+ 9 | YlWNagZOOVtNz4oKK9x9eNQpmfQXQvPPTfusexKIbKfZrMvJoxcm1gfcZ0H/wK6P 10 | 6wmXSG35qMOOztCZNtperjs1wzEBXznyK8QmLcAJBjkfarABJX9vBEzZV0OUKhy+ 11 | noORFwHTllphbmydLhu6ehLUZMHPhzAS5UN7srtpSN81eerDMy0RMUAwA7/PofX1 12 | 94Me85Q8jP0PC9ETdsJcPqLzAPETEYu0ELewKRcrdyWi+tlLFrpE5KT/s5ecbl9l 13 | 7B61U4Kfd1PIXc/siINhU3A3bYK+845YyUArUOnKf1kEox7p1RpD7yFqVT04lRTo 14 | cibNKATBusXSuBrp2G6GNuhWEOSafWCKJQAzgCYIp6ZTV2khhMUGppc/2H3CF6cO 15 | zX0KtlPVZC7hLkB6HT8SxYUwF1zqWY7+/XPPdc37MeEZ87Q3UuZwqORLY+Z0hpgt 16 | L5JXBCoklZhCAaN2GqwFLXtGiRSRFGY7xXIhbDTlE65Wv1WGGgDLMKGE1gOz3yAo 17 | 2jjG1+yAHJUdE69XTFHSqSkvaloA1W03LdMXZ9VuQJ/ySXCie6ABAQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/test/ssl_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANtb0+YrKuxevGpm 3 | LrjaUhZSgz6zFAmuGFmKmUbdjmfv9zSmmdsQIksK++jK0Be9LeZy20j6ahOfuVa0 4 | ufEmPoP7Fy4hXegKZR9cCWcIe/A6H2xWF1IIJLRTLaU8ol/I7T+um5HD5AwAwNPP 5 | USNU0Eegmvp+xxWu3NX2m1Veot85AgMBAAECgYA3ZdZ673X0oexFlq7AAmrutkHt 6 | CL7LvwrpOiaBjhyTxTeSNWzvtQBkIU8DOI0bIazA4UreAFffwtvEuPmonDb3F+Iq 7 | SMAu42XcGyVZEl+gHlTPU9XRX7nTOXVt+MlRRRxL6t9GkGfUAXI3XxJDXW3c0vBK 8 | UL9xqD8cORXOfE06rQJBAP8mEX1ERkR64Ptsoe4281vjTlNfIbs7NMPkUnrn9N/Y 9 | BLhjNIfQ3HFZG8BTMLfX7kCS9D593DW5tV4Z9BP/c6cCQQDcFzCcVArNh2JSywOQ 10 | ZfTfRbJg/Z5Lt9Fkngv1meeGNPgIMLN8Sg679pAOOWmzdMO3V706rNPzSVMME7E5 11 | oPIfAkEA8pDddarP5tCvTTgUpmTFbakm0KoTZm2+FzHcnA4jRh+XNTjTOv98Y6Ik 12 | eO5d1ZnKXseWvkZncQgxfdnMqqpj5wJAcNq/RVne1DbYlwWchT2Si65MYmmJ8t+F 13 | 0mcsULqjOnEMwf5e+ptq5LzwbyrHZYq5FNk7ocufPv/ZQrcSSC+cFwJBAKvOJByS 14 | x56qyGeZLOQlWS2JS3KJo59XuLFGqcbgN9Om9xFa41Yb4N9NvplFivsvZdw3m1Q/ 15 | SPIXQuT8RMPDVNQ= 16 | -----END PRIVATE KEY----- 17 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/urllib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/future/backports/urllib/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/backports/xmlrpc/__init__.py: -------------------------------------------------------------------------------- 1 | # This directory is a Python package. 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/__init__.py: -------------------------------------------------------------------------------- 1 | # future.moves package 2 | from __future__ import absolute_import 3 | import sys 4 | __future_module__ = True 5 | from future.standard_library import import_top_level_modules 6 | 7 | if sys.version_info[0] >= 3: 8 | import_top_level_modules() 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/_dummy_thread.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from _dummy_thread import * 6 | else: 7 | __future_module__ = True 8 | from dummy_thread import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/_markupbase.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from _markupbase import * 6 | else: 7 | __future_module__ = True 8 | from markupbase import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/_thread.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from _thread import * 6 | else: 7 | __future_module__ = True 8 | from thread import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/builtins.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from builtins import * 6 | else: 7 | __future_module__ = True 8 | from __builtin__ import * 9 | # Overwrite any old definitions with the equivalent future.builtins ones: 10 | from future.builtins import * 11 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/collections.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | import sys 3 | 4 | from future.utils import PY2, PY26 5 | __future_module__ = True 6 | 7 | from collections import * 8 | 9 | if PY2: 10 | from UserDict import UserDict 11 | from UserList import UserList 12 | from UserString import UserString 13 | 14 | if PY26: 15 | from future.backports.misc import OrderedDict, Counter 16 | 17 | if sys.version_info < (3, 3): 18 | from future.backports.misc import ChainMap, _count_elements 19 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/configparser.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY2 4 | 5 | if PY2: 6 | from ConfigParser import * 7 | else: 8 | from configparser import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/copyreg.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | import copyreg, sys 6 | # A "*" import uses Python 3's copyreg.__all__ which does not include 7 | # all public names in the API surface for copyreg, this avoids that 8 | # problem by just making our module _be_ a reference to the actual module. 9 | sys.modules['future.moves.copyreg'] = copyreg 10 | else: 11 | __future_module__ = True 12 | from copy_reg import * 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/dbm/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from dbm import * 6 | else: 7 | __future_module__ = True 8 | from whichdb import * 9 | from anydbm import * 10 | 11 | # Py3.3's dbm/__init__.py imports ndbm but doesn't expose it via __all__. 12 | # In case some (badly written) code depends on dbm.ndbm after import dbm, 13 | # we simulate this: 14 | if PY3: 15 | from dbm import ndbm 16 | else: 17 | try: 18 | from future.moves.dbm import ndbm 19 | except ImportError: 20 | ndbm = None 21 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/dbm/dumb.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from dbm.dumb import * 7 | else: 8 | __future_module__ = True 9 | from dumbdbm import * 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/dbm/gnu.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from dbm.gnu import * 7 | else: 8 | __future_module__ = True 9 | from gdbm import * 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/dbm/ndbm.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from dbm.ndbm import * 7 | else: 8 | __future_module__ = True 9 | from dbm import * 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/html/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | __future_module__ = True 4 | 5 | if PY3: 6 | from html import * 7 | else: 8 | # cgi.escape isn't good enough for the single Py3.3 html test to pass. 9 | # Define it inline here instead. From the Py3.4 stdlib. Note that the 10 | # html.escape() function from the Py3.3 stdlib is not suitable for use on 11 | # Py2.x. 12 | """ 13 | General functions for HTML manipulation. 14 | """ 15 | 16 | def escape(s, quote=True): 17 | """ 18 | Replace special characters "&", "<" and ">" to HTML-safe sequences. 19 | If the optional flag quote is true (the default), the quotation mark 20 | characters, both double quote (") and single quote (') characters are also 21 | translated. 22 | """ 23 | s = s.replace("&", "&") # Must be done first! 24 | s = s.replace("<", "<") 25 | s = s.replace(">", ">") 26 | if quote: 27 | s = s.replace('"', """) 28 | s = s.replace('\'', "'") 29 | return s 30 | 31 | __all__ = ['escape'] 32 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/html/entities.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from html.entities import * 6 | else: 7 | __future_module__ = True 8 | from htmlentitydefs import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/html/parser.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | __future_module__ = True 4 | 5 | if PY3: 6 | from html.parser import * 7 | else: 8 | from HTMLParser import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/http/__init__.py: -------------------------------------------------------------------------------- 1 | from future.utils import PY3 2 | 3 | if not PY3: 4 | __future_module__ = True 5 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/http/client.py: -------------------------------------------------------------------------------- 1 | from future.utils import PY3 2 | 3 | if PY3: 4 | from http.client import * 5 | else: 6 | from httplib import * 7 | from httplib import HTTPMessage 8 | __future_module__ = True 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/http/cookiejar.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from http.cookiejar import * 6 | else: 7 | __future_module__ = True 8 | from cookielib import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/http/cookies.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from http.cookies import * 6 | else: 7 | __future_module__ = True 8 | from Cookie import * 9 | from Cookie import Morsel # left out of __all__ on Py2.7! 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/http/server.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from http.server import * 6 | else: 7 | __future_module__ = True 8 | from BaseHTTPServer import * 9 | from CGIHTTPServer import * 10 | from SimpleHTTPServer import * 11 | try: 12 | from CGIHTTPServer import _url_collapse_path # needed for a test 13 | except ImportError: 14 | try: 15 | # Python 2.7.0 to 2.7.3 16 | from CGIHTTPServer import ( 17 | _url_collapse_path_split as _url_collapse_path) 18 | except ImportError: 19 | # Doesn't exist on Python 2.6.x. Ignore it. 20 | pass 21 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/itertools.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from itertools import * 4 | try: 5 | zip_longest = izip_longest 6 | filterfalse = ifilterfalse 7 | except NameError: 8 | pass 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/pickle.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from pickle import * 6 | else: 7 | __future_module__ = True 8 | try: 9 | from cPickle import * 10 | except ImportError: 11 | from pickle import * 12 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/queue.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from queue import * 6 | else: 7 | __future_module__ = True 8 | from Queue import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/reprlib.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from reprlib import * 6 | else: 7 | __future_module__ = True 8 | from repr import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/socketserver.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from socketserver import * 6 | else: 7 | __future_module__ = True 8 | from SocketServer import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/subprocess.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY2, PY26 3 | 4 | from subprocess import * 5 | 6 | if PY2: 7 | __future_module__ = True 8 | from commands import getoutput, getstatusoutput 9 | 10 | if PY26: 11 | from future.backports.misc import check_output 12 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/sys.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY2 4 | 5 | from sys import * 6 | 7 | if PY2: 8 | from __builtin__ import intern 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/test/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if not PY3: 5 | __future_module__ = True 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/test/support.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.standard_library import suspend_hooks 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from test.support import * 7 | else: 8 | __future_module__ = True 9 | with suspend_hooks(): 10 | from test.test_support import * 11 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | __future_module__ = True 4 | 5 | if not PY3: 6 | from Tkinter import * 7 | from Tkinter import (_cnfmerge, _default_root, _flatten, 8 | _support_default_root, _test, 9 | _tkinter, _setit) 10 | 11 | try: # >= 2.7.4 12 | from Tkinter import (_join) 13 | except ImportError: 14 | pass 15 | 16 | try: # >= 2.7.4 17 | from Tkinter import (_stringify) 18 | except ImportError: 19 | pass 20 | 21 | try: # >= 2.7.9 22 | from Tkinter import (_splitdict) 23 | except ImportError: 24 | pass 25 | 26 | else: 27 | from tkinter import * 28 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/colorchooser.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.colorchooser import * 7 | else: 8 | try: 9 | from tkColorChooser import * 10 | except ImportError: 11 | raise ImportError('The tkColorChooser module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/commondialog.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.commondialog import * 7 | else: 8 | try: 9 | from tkCommonDialog import * 10 | except ImportError: 11 | raise ImportError('The tkCommonDialog module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/constants.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.constants import * 7 | else: 8 | try: 9 | from Tkconstants import * 10 | except ImportError: 11 | raise ImportError('The Tkconstants module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/dialog.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.dialog import * 7 | else: 8 | try: 9 | from Dialog import * 10 | except ImportError: 11 | raise ImportError('The Dialog module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/dnd.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.dnd import * 7 | else: 8 | try: 9 | from Tkdnd import * 10 | except ImportError: 11 | raise ImportError('The Tkdnd module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/filedialog.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.filedialog import * 7 | else: 8 | try: 9 | from FileDialog import * 10 | except ImportError: 11 | raise ImportError('The FileDialog module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/font.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.font import * 7 | else: 8 | try: 9 | from tkFont import * 10 | except ImportError: 11 | raise ImportError('The tkFont module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/messagebox.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.messagebox import * 7 | else: 8 | try: 9 | from tkMessageBox import * 10 | except ImportError: 11 | raise ImportError('The tkMessageBox module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/scrolledtext.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.scrolledtext import * 7 | else: 8 | try: 9 | from ScrolledText import * 10 | except ImportError: 11 | raise ImportError('The ScrolledText module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/simpledialog.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.simpledialog import * 7 | else: 8 | try: 9 | from SimpleDialog import * 10 | except ImportError: 11 | raise ImportError('The SimpleDialog module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/tix.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.tix import * 7 | else: 8 | try: 9 | from Tix import * 10 | except ImportError: 11 | raise ImportError('The Tix module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/tkinter/ttk.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from future.utils import PY3 4 | 5 | if PY3: 6 | from tkinter.ttk import * 7 | else: 8 | try: 9 | from ttk import * 10 | except ImportError: 11 | raise ImportError('The ttk module is missing. Does your Py2 ' 12 | 'installation include tkinter?') 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/urllib/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if not PY3: 5 | __future_module__ = True 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/urllib/error.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.standard_library import suspend_hooks 3 | 4 | from future.utils import PY3 5 | 6 | if PY3: 7 | from urllib.error import * 8 | else: 9 | __future_module__ = True 10 | 11 | # We use this method to get at the original Py2 urllib before any renaming magic 12 | # ContentTooShortError = sys.py2_modules['urllib'].ContentTooShortError 13 | 14 | with suspend_hooks(): 15 | from urllib import ContentTooShortError 16 | from urllib2 import URLError, HTTPError 17 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/urllib/parse.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.standard_library import suspend_hooks 3 | 4 | from future.utils import PY3 5 | 6 | if PY3: 7 | from urllib.parse import * 8 | else: 9 | __future_module__ = True 10 | from urlparse import (ParseResult, SplitResult, parse_qs, parse_qsl, 11 | urldefrag, urljoin, urlparse, urlsplit, 12 | urlunparse, urlunsplit) 13 | 14 | # we use this method to get at the original py2 urllib before any renaming 15 | # quote = sys.py2_modules['urllib'].quote 16 | # quote_plus = sys.py2_modules['urllib'].quote_plus 17 | # unquote = sys.py2_modules['urllib'].unquote 18 | # unquote_plus = sys.py2_modules['urllib'].unquote_plus 19 | # urlencode = sys.py2_modules['urllib'].urlencode 20 | # splitquery = sys.py2_modules['urllib'].splitquery 21 | 22 | with suspend_hooks(): 23 | from urllib import (quote, 24 | quote_plus, 25 | unquote, 26 | unquote_plus, 27 | urlencode, 28 | splitquery) 29 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/urllib/response.py: -------------------------------------------------------------------------------- 1 | from future import standard_library 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from urllib.response import * 6 | else: 7 | __future_module__ = True 8 | with standard_library.suspend_hooks(): 9 | from urllib import (addbase, 10 | addclosehook, 11 | addinfo, 12 | addinfourl) 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/urllib/robotparser.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from urllib.robotparser import * 6 | else: 7 | __future_module__ = True 8 | from robotparser import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/winreg.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from winreg import * 6 | else: 7 | __future_module__ = True 8 | from _winreg import * 9 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/xmlrpc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/future/moves/xmlrpc/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/xmlrpc/client.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from xmlrpc.client import * 6 | else: 7 | from xmlrpclib import * 8 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/moves/xmlrpc/server.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | from future.utils import PY3 3 | 4 | if PY3: 5 | from xmlrpc.server import * 6 | else: 7 | from xmlrpclib import * 8 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/future/tests/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/types/newmemoryview.py: -------------------------------------------------------------------------------- 1 | """ 2 | A pretty lame implementation of a memoryview object for Python 2.6. 3 | """ 4 | from numbers import Integral 5 | import string 6 | 7 | from future.utils import istext, isbytes, PY2, with_metaclass 8 | from future.types import no, issubset 9 | 10 | if PY2: 11 | from collections import Iterable 12 | else: 13 | from collections.abc import Iterable 14 | 15 | # class BaseNewBytes(type): 16 | # def __instancecheck__(cls, instance): 17 | # return isinstance(instance, _builtin_bytes) 18 | 19 | 20 | class newmemoryview(object): # with_metaclass(BaseNewBytes, _builtin_bytes)): 21 | """ 22 | A pretty lame backport of the Python 2.7 and Python 3.x 23 | memoryviewview object to Py2.6. 24 | """ 25 | def __init__(self, obj): 26 | return obj 27 | 28 | 29 | __all__ = ['newmemoryview'] 30 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/future/types/newopen.py: -------------------------------------------------------------------------------- 1 | """ 2 | A substitute for the Python 3 open() function. 3 | 4 | Note that io.open() is more complete but maybe slower. Even so, the 5 | completeness may be a better default. TODO: compare these 6 | """ 7 | 8 | _builtin_open = open 9 | 10 | class newopen(object): 11 | """Wrapper providing key part of Python 3 open() interface. 12 | 13 | From IPython's py3compat.py module. License: BSD. 14 | """ 15 | def __init__(self, fname, mode="r", encoding="utf-8"): 16 | self.f = _builtin_open(fname, mode) 17 | self.enc = encoding 18 | 19 | def write(self, s): 20 | return self.f.write(s.encode(self.enc)) 21 | 22 | def read(self, size=-1): 23 | return self.f.read(size).decode(self.enc) 24 | 25 | def close(self): 26 | return self.f.close() 27 | 28 | def __enter__(self): 29 | return self 30 | 31 | def __exit__(self, etype, value, traceback): 32 | self.f.close() 33 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/idna-2.10.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/idna-2.10.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.33.6) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/idna-2.10.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | idna 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/idna/__init__.py: -------------------------------------------------------------------------------- 1 | from .package_data import __version__ 2 | from .core import * 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/idna/package_data.py: -------------------------------------------------------------------------------- 1 | __version__ = '2.10' 2 | 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/itsdangerous-1.1.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/itsdangerous-1.1.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | itsdangerous 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/jinja2/_identifier.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # generated by scripts/generate_identifier_pattern.py 4 | pattern = re.compile( 5 | r"[\w·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఃా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑅳𑄴𑆀-𑆂𑆳-𑇊𑇀-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯]+" # noqa: B950 6 | ) 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/jwt/exceptions.py: -------------------------------------------------------------------------------- 1 | class PyJWTError(Exception): 2 | """ 3 | Base class for all exceptions 4 | """ 5 | 6 | pass 7 | 8 | 9 | class InvalidTokenError(PyJWTError): 10 | pass 11 | 12 | 13 | class DecodeError(InvalidTokenError): 14 | pass 15 | 16 | 17 | class InvalidSignatureError(DecodeError): 18 | pass 19 | 20 | 21 | class ExpiredSignatureError(InvalidTokenError): 22 | pass 23 | 24 | 25 | class InvalidAudienceError(InvalidTokenError): 26 | pass 27 | 28 | 29 | class InvalidIssuerError(InvalidTokenError): 30 | pass 31 | 32 | 33 | class InvalidIssuedAtError(InvalidTokenError): 34 | pass 35 | 36 | 37 | class ImmatureSignatureError(InvalidTokenError): 38 | pass 39 | 40 | 41 | class InvalidKeyError(PyJWTError): 42 | pass 43 | 44 | 45 | class InvalidAlgorithmError(InvalidTokenError): 46 | pass 47 | 48 | 49 | class MissingRequiredClaimError(InvalidTokenError): 50 | def __init__(self, claim): 51 | self.claim = claim 52 | 53 | def __str__(self): 54 | return 'Token is missing the "%s" claim' % self.claim 55 | 56 | 57 | class PyJWKError(PyJWTError): 58 | pass 59 | 60 | 61 | class PyJWKSetError(PyJWTError): 62 | pass 63 | 64 | 65 | class PyJWKClientError(PyJWTError): 66 | pass 67 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/jwt/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/jwt/py.typed -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/__init__.py: -------------------------------------------------------------------------------- 1 | # empty to make this a package 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_add__future__imports_except_unicode_literals.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fixer for adding: 3 | 4 | from __future__ import absolute_import 5 | from __future__ import division 6 | from __future__ import print_function 7 | 8 | This is "stage 1": hopefully uncontroversial changes. 9 | 10 | Stage 2 adds ``unicode_literals``. 11 | """ 12 | 13 | from lib2to3 import fixer_base 14 | from libfuturize.fixer_util import future_import 15 | 16 | class FixAddFutureImportsExceptUnicodeLiterals(fixer_base.BaseFix): 17 | BM_compatible = True 18 | PATTERN = "file_input" 19 | 20 | run_order = 9 21 | 22 | def transform(self, node, results): 23 | # Reverse order: 24 | future_import(u"absolute_import", node) 25 | future_import(u"division", node) 26 | future_import(u"print_function", node) 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_basestring.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fixer that adds ``from past.builtins import basestring`` if there is a 3 | reference to ``basestring`` 4 | """ 5 | 6 | from lib2to3 import fixer_base 7 | 8 | from libfuturize.fixer_util import touch_import_top 9 | 10 | 11 | class FixBasestring(fixer_base.BaseFix): 12 | BM_compatible = True 13 | 14 | PATTERN = "'basestring'" 15 | 16 | def transform(self, node, results): 17 | touch_import_top(u'past.builtins', 'basestring', node) 18 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_bytes.py: -------------------------------------------------------------------------------- 1 | """Optional fixer that changes all unprefixed string literals "..." to b"...". 2 | 3 | br'abcd' is a SyntaxError on Python 2 but valid on Python 3. 4 | ur'abcd' is a SyntaxError on Python 3 but valid on Python 2. 5 | 6 | """ 7 | from __future__ import unicode_literals 8 | 9 | import re 10 | from lib2to3.pgen2 import token 11 | from lib2to3 import fixer_base 12 | 13 | _literal_re = re.compile(r"[^bBuUrR]?[\'\"]") 14 | 15 | class FixBytes(fixer_base.BaseFix): 16 | BM_compatible = True 17 | PATTERN = "STRING" 18 | 19 | def transform(self, node, results): 20 | if node.type == token.STRING: 21 | if _literal_re.match(node.value): 22 | new = node.clone() 23 | new.value = u'b' + new.value 24 | return new 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_cmp.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | """ 3 | Fixer for the cmp() function on Py2, which was removed in Py3. 4 | 5 | Adds this import line:: 6 | 7 | from past.builtins import cmp 8 | 9 | if cmp() is called in the code. 10 | """ 11 | 12 | from __future__ import unicode_literals 13 | from lib2to3 import fixer_base 14 | 15 | from libfuturize.fixer_util import touch_import_top 16 | 17 | 18 | expression = "name='cmp'" 19 | 20 | 21 | class FixCmp(fixer_base.BaseFix): 22 | BM_compatible = True 23 | run_order = 9 24 | 25 | PATTERN = """ 26 | power< 27 | ({0}) trailer< '(' args=[any] ')' > 28 | rest=any* > 29 | """.format(expression) 30 | 31 | def transform(self, node, results): 32 | name = results["name"] 33 | touch_import_top(u'past.builtins', name.value, node) 34 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_division.py: -------------------------------------------------------------------------------- 1 | """ 2 | UNFINISHED 3 | For the ``future`` package. 4 | 5 | Adds this import line: 6 | 7 | from __future__ import division 8 | 9 | at the top so the code runs identically on Py3 and Py2.6/2.7 10 | """ 11 | 12 | from libpasteurize.fixes.fix_division import FixDivision 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_execfile.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | """ 3 | Fixer for the execfile() function on Py2, which was removed in Py3. 4 | 5 | The Lib/lib2to3/fixes/fix_execfile.py module has some problems: see 6 | python-future issue #37. This fixer merely imports execfile() from 7 | past.builtins and leaves the code alone. 8 | 9 | Adds this import line:: 10 | 11 | from past.builtins import execfile 12 | 13 | for the function execfile() that was removed from Py3. 14 | """ 15 | 16 | from __future__ import unicode_literals 17 | from lib2to3 import fixer_base 18 | 19 | from libfuturize.fixer_util import touch_import_top 20 | 21 | 22 | expression = "name='execfile'" 23 | 24 | 25 | class FixExecfile(fixer_base.BaseFix): 26 | BM_compatible = True 27 | run_order = 9 28 | 29 | PATTERN = """ 30 | power< 31 | ({0}) trailer< '(' args=[any] ')' > 32 | rest=any* > 33 | """.format(expression) 34 | 35 | def transform(self, node, results): 36 | name = results["name"] 37 | touch_import_top(u'past.builtins', name.value, node) 38 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_future_standard_library.py: -------------------------------------------------------------------------------- 1 | """ 2 | For the ``future`` package. 3 | 4 | Changes any imports needed to reflect the standard library reorganization. Also 5 | Also adds these import lines: 6 | 7 | from future import standard_library 8 | standard_library.install_aliases() 9 | 10 | after any __future__ imports but before any other imports. 11 | """ 12 | 13 | from lib2to3.fixes.fix_imports import FixImports 14 | from libfuturize.fixer_util import touch_import_top 15 | 16 | 17 | class FixFutureStandardLibrary(FixImports): 18 | run_order = 8 19 | 20 | def transform(self, node, results): 21 | result = super(FixFutureStandardLibrary, self).transform(node, results) 22 | # TODO: add a blank line between any __future__ imports and this? 23 | touch_import_top(u'future', u'standard_library', node) 24 | return result 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_future_standard_library_urllib.py: -------------------------------------------------------------------------------- 1 | """ 2 | For the ``future`` package. 3 | 4 | A special fixer that ensures that these lines have been added:: 5 | 6 | from future import standard_library 7 | standard_library.install_hooks() 8 | 9 | even if the only module imported was ``urllib``, in which case the regular fixer 10 | wouldn't have added these lines. 11 | 12 | """ 13 | 14 | from lib2to3.fixes.fix_urllib import FixUrllib 15 | from libfuturize.fixer_util import touch_import_top, find_root 16 | 17 | 18 | class FixFutureStandardLibraryUrllib(FixUrllib): # not a subclass of FixImports 19 | run_order = 8 20 | 21 | def transform(self, node, results): 22 | # transform_member() in lib2to3/fixes/fix_urllib.py breaks node so find_root(node) 23 | # no longer works after the super() call below. So we find the root first: 24 | root = find_root(node) 25 | result = super(FixFutureStandardLibraryUrllib, self).transform(node, results) 26 | # TODO: add a blank line between any __future__ imports and this? 27 | touch_import_top(u'future', u'standard_library', root) 28 | return result 29 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_input.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fixer for input. 3 | 4 | Does a check for `from builtins import input` before running the lib2to3 fixer. 5 | The fixer will not run when the input is already present. 6 | 7 | 8 | this: 9 | a = input() 10 | becomes: 11 | from builtins import input 12 | a = eval(input()) 13 | 14 | and this: 15 | from builtins import input 16 | a = input() 17 | becomes (no change): 18 | from builtins import input 19 | a = input() 20 | """ 21 | 22 | import lib2to3.fixes.fix_input 23 | from lib2to3.fixer_util import does_tree_import 24 | 25 | 26 | class FixInput(lib2to3.fixes.fix_input.FixInput): 27 | def transform(self, node, results): 28 | 29 | if does_tree_import('builtins', 'input', node): 30 | return 31 | 32 | return super(FixInput, self).transform(node, results) 33 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_object.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fixer that adds ``from builtins import object`` if there is a line 3 | like this: 4 | class Foo(object): 5 | """ 6 | 7 | from lib2to3 import fixer_base 8 | 9 | from libfuturize.fixer_util import touch_import_top 10 | 11 | 12 | class FixObject(fixer_base.BaseFix): 13 | 14 | PATTERN = u"classdef< 'class' NAME '(' name='object' ')' colon=':' any >" 15 | 16 | def transform(self, node, results): 17 | touch_import_top(u'builtins', 'object', node) 18 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_order___future__imports.py: -------------------------------------------------------------------------------- 1 | """ 2 | UNFINISHED 3 | 4 | Fixer for turning multiple lines like these: 5 | 6 | from __future__ import division 7 | from __future__ import absolute_import 8 | from __future__ import print_function 9 | 10 | into a single line like this: 11 | 12 | from __future__ import (absolute_import, division, print_function) 13 | 14 | This helps with testing of ``futurize``. 15 | """ 16 | 17 | from lib2to3 import fixer_base 18 | from libfuturize.fixer_util import future_import 19 | 20 | class FixOrderFutureImports(fixer_base.BaseFix): 21 | BM_compatible = True 22 | PATTERN = "file_input" 23 | 24 | run_order = 10 25 | 26 | # def match(self, node): 27 | # """ 28 | # Match only once per file 29 | # """ 30 | # if hasattr(node, 'type') and node.type == syms.file_input: 31 | # return True 32 | # return False 33 | 34 | def transform(self, node, results): 35 | # TODO # write me 36 | pass 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_print_with_import.py: -------------------------------------------------------------------------------- 1 | """ 2 | For the ``future`` package. 3 | 4 | Turns any print statements into functions and adds this import line: 5 | 6 | from __future__ import print_function 7 | 8 | at the top to retain compatibility with Python 2.6+. 9 | """ 10 | 11 | from libfuturize.fixes.fix_print import FixPrint 12 | from libfuturize.fixer_util import future_import 13 | 14 | class FixPrintWithImport(FixPrint): 15 | run_order = 7 16 | def transform(self, node, results): 17 | # Add the __future__ import first. (Otherwise any shebang or encoding 18 | # comment line attached as a prefix to the print statement will be 19 | # copied twice and appear twice.) 20 | future_import(u'print_function', node) 21 | n_stmt = super(FixPrintWithImport, self).transform(node, results) 22 | return n_stmt 23 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_remove_old__future__imports.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fixer for removing any of these lines: 3 | 4 | from __future__ import with_statement 5 | from __future__ import nested_scopes 6 | from __future__ import generators 7 | 8 | The reason is that __future__ imports like these are required to be the first 9 | line of code (after docstrings) on Python 2.6+, which can get in the way. 10 | 11 | These imports are always enabled in Python 2.6+, which is the minimum sane 12 | version to target for Py2/3 compatibility. 13 | """ 14 | 15 | from lib2to3 import fixer_base 16 | from libfuturize.fixer_util import remove_future_import 17 | 18 | class FixRemoveOldFutureImports(fixer_base.BaseFix): 19 | BM_compatible = True 20 | PATTERN = "file_input" 21 | run_order = 1 22 | 23 | def transform(self, node, results): 24 | remove_future_import(u"with_statement", node) 25 | remove_future_import(u"nested_scopes", node) 26 | remove_future_import(u"generators", node) 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_unicode_keep_u.py: -------------------------------------------------------------------------------- 1 | """Fixer that changes unicode to str and unichr to chr, but -- unlike the 2 | lib2to3 fix_unicode.py fixer, does not change u"..." into "...". 3 | 4 | The reason is that Py3.3+ supports the u"..." string prefix, and, if 5 | present, the prefix may provide useful information for disambiguating 6 | between byte strings and unicode strings, which is often the hardest part 7 | of the porting task. 8 | 9 | """ 10 | 11 | from lib2to3.pgen2 import token 12 | from lib2to3 import fixer_base 13 | 14 | _mapping = {u"unichr" : u"chr", u"unicode" : u"str"} 15 | 16 | class FixUnicodeKeepU(fixer_base.BaseFix): 17 | BM_compatible = True 18 | PATTERN = "'unicode' | 'unichr'" 19 | 20 | def transform(self, node, results): 21 | if node.type == token.NAME: 22 | new = node.clone() 23 | new.value = _mapping[node.value] 24 | return new 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_unicode_literals_import.py: -------------------------------------------------------------------------------- 1 | """ 2 | Adds this import: 3 | 4 | from __future__ import unicode_literals 5 | 6 | """ 7 | 8 | from lib2to3 import fixer_base 9 | from libfuturize.fixer_util import future_import 10 | 11 | class FixUnicodeLiteralsImport(fixer_base.BaseFix): 12 | BM_compatible = True 13 | PATTERN = "file_input" 14 | 15 | run_order = 9 16 | 17 | def transform(self, node, results): 18 | future_import(u"unicode_literals", node) 19 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libfuturize/fixes/fix_xrange_with_import.py: -------------------------------------------------------------------------------- 1 | """ 2 | For the ``future`` package. 3 | 4 | Turns any xrange calls into range calls and adds this import line: 5 | 6 | from builtins import range 7 | 8 | at the top. 9 | """ 10 | 11 | from lib2to3.fixes.fix_xrange import FixXrange 12 | 13 | from libfuturize.fixer_util import touch_import_top 14 | 15 | 16 | class FixXrangeWithImport(FixXrange): 17 | def transform(self, node, results): 18 | result = super(FixXrangeWithImport, self).transform(node, results) 19 | touch_import_top('builtins', 'range', node) 20 | return result 21 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/__init__.py: -------------------------------------------------------------------------------- 1 | # empty to make this a package 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_add_all__future__imports.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fixer for adding: 3 | 4 | from __future__ import absolute_import 5 | from __future__ import division 6 | from __future__ import print_function 7 | from __future__ import unicode_literals 8 | 9 | This is done when converting from Py3 to both Py3/Py2. 10 | """ 11 | 12 | from lib2to3 import fixer_base 13 | from libfuturize.fixer_util import future_import 14 | 15 | class FixAddAllFutureImports(fixer_base.BaseFix): 16 | BM_compatible = True 17 | PATTERN = "file_input" 18 | run_order = 1 19 | 20 | def transform(self, node, results): 21 | future_import(u"absolute_import", node) 22 | future_import(u"division", node) 23 | future_import(u"print_function", node) 24 | future_import(u"unicode_literals", node) 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_add_future_standard_library_import.py: -------------------------------------------------------------------------------- 1 | """ 2 | For the ``future`` package. 3 | 4 | Adds this import line: 5 | 6 | from future import standard_library 7 | 8 | after any __future__ imports but before any other imports. Doesn't actually 9 | change the imports to Py3 style. 10 | """ 11 | 12 | from lib2to3 import fixer_base 13 | from libfuturize.fixer_util import touch_import_top 14 | 15 | class FixAddFutureStandardLibraryImport(fixer_base.BaseFix): 16 | BM_compatible = True 17 | PATTERN = "file_input" 18 | run_order = 8 19 | 20 | def transform(self, node, results): 21 | # TODO: add a blank line between any __future__ imports and this? 22 | touch_import_top(u'future', u'standard_library', node) 23 | # TODO: also add standard_library.install_hooks() 24 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_division.py: -------------------------------------------------------------------------------- 1 | u""" 2 | Fixer for division: from __future__ import division if needed 3 | """ 4 | 5 | from lib2to3 import fixer_base 6 | from libfuturize.fixer_util import token, future_import 7 | 8 | def match_division(node): 9 | u""" 10 | __future__.division redefines the meaning of a single slash for division, 11 | so we match that and only that. 12 | """ 13 | slash = token.SLASH 14 | return node.type == slash and not node.next_sibling.type == slash and \ 15 | not node.prev_sibling.type == slash 16 | 17 | class FixDivision(fixer_base.BaseFix): 18 | run_order = 4 # this seems to be ignored? 19 | 20 | def match(self, node): 21 | u""" 22 | Since the tree needs to be fixed once and only once if and only if it 23 | matches, then we can start discarding matches after we make the first. 24 | """ 25 | return match_division(node) 26 | 27 | def transform(self, node, results): 28 | future_import(u"division", node) 29 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_fullargspec.py: -------------------------------------------------------------------------------- 1 | u""" 2 | Fixer for getfullargspec -> getargspec 3 | """ 4 | 5 | from lib2to3 import fixer_base 6 | from lib2to3.fixer_util import Name 7 | 8 | warn_msg = u"some of the values returned by getfullargspec are not valid in Python 2 and have no equivalent." 9 | 10 | class FixFullargspec(fixer_base.BaseFix): 11 | 12 | PATTERN = u"'getfullargspec'" 13 | 14 | def transform(self, node, results): 15 | self.warning(node, warn_msg) 16 | return Name(u"getargspec", prefix=node.prefix) 17 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_getcwd.py: -------------------------------------------------------------------------------- 1 | u""" 2 | Fixer for os.getcwd() -> os.getcwdu(). 3 | Also warns about "from os import getcwd", suggesting the above form. 4 | """ 5 | 6 | from lib2to3 import fixer_base 7 | from lib2to3.fixer_util import Name 8 | 9 | class FixGetcwd(fixer_base.BaseFix): 10 | 11 | PATTERN = u""" 12 | power< 'os' trailer< dot='.' name='getcwd' > any* > 13 | | 14 | import_from< 'from' 'os' 'import' bad='getcwd' > 15 | """ 16 | 17 | def transform(self, node, results): 18 | if u"name" in results: 19 | name = results[u"name"] 20 | name.replace(Name(u"getcwdu", prefix=name.prefix)) 21 | elif u"bad" in results: 22 | # Can't convert to getcwdu and then expect to catch every use. 23 | self.cannot_convert(node, u"import os, use os.getcwd() instead.") 24 | return 25 | else: 26 | raise ValueError(u"For some reason, the pattern matcher failed.") 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_memoryview.py: -------------------------------------------------------------------------------- 1 | u""" 2 | Fixer for memoryview(s) -> buffer(s). 3 | Explicit because some memoryview methods are invalid on buffer objects. 4 | """ 5 | 6 | from lib2to3 import fixer_base 7 | from lib2to3.fixer_util import Name 8 | 9 | 10 | class FixMemoryview(fixer_base.BaseFix): 11 | 12 | explicit = True # User must specify that they want this. 13 | 14 | PATTERN = u""" 15 | power< name='memoryview' trailer< '(' [any] ')' > 16 | rest=any* > 17 | """ 18 | 19 | def transform(self, node, results): 20 | name = results[u"name"] 21 | name.replace(Name(u"buffer", prefix=name.prefix)) 22 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_newstyle.py: -------------------------------------------------------------------------------- 1 | u""" 2 | Fixer for "class Foo: ..." -> "class Foo(object): ..." 3 | """ 4 | 5 | from lib2to3 import fixer_base 6 | from lib2to3.fixer_util import LParen, RParen, Name 7 | 8 | from libfuturize.fixer_util import touch_import_top 9 | 10 | 11 | def insert_object(node, idx): 12 | node.insert_child(idx, RParen()) 13 | node.insert_child(idx, Name(u"object")) 14 | node.insert_child(idx, LParen()) 15 | 16 | class FixNewstyle(fixer_base.BaseFix): 17 | 18 | # Match: 19 | # class Blah: 20 | # and: 21 | # class Blah(): 22 | 23 | PATTERN = u"classdef< 'class' NAME ['(' ')'] colon=':' any >" 24 | 25 | def transform(self, node, results): 26 | colon = results[u"colon"] 27 | idx = node.children.index(colon) 28 | if (node.children[idx-2].value == '(' and 29 | node.children[idx-1].value == ')'): 30 | del node.children[idx-2:idx] 31 | idx -= 2 32 | insert_object(node, idx) 33 | touch_import_top(u'builtins', 'object', node) 34 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_printfunction.py: -------------------------------------------------------------------------------- 1 | u""" 2 | Fixer for print: from __future__ import print_function. 3 | """ 4 | 5 | from lib2to3 import fixer_base 6 | from libfuturize.fixer_util import future_import 7 | 8 | class FixPrintfunction(fixer_base.BaseFix): 9 | 10 | # explicit = True 11 | 12 | PATTERN = u""" 13 | power< 'print' trailer < '(' any* ')' > any* > 14 | """ 15 | 16 | def transform(self, node, results): 17 | future_import(u"print_function", node) 18 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_raise.py: -------------------------------------------------------------------------------- 1 | u"""Fixer for 'raise E(V).with_traceback(T)' -> 'raise E, V, T'""" 2 | 3 | from lib2to3 import fixer_base 4 | from lib2to3.fixer_util import Comma, Node, Leaf, token, syms 5 | 6 | class FixRaise(fixer_base.BaseFix): 7 | 8 | PATTERN = u""" 9 | raise_stmt< 'raise' (power< name=any [trailer< '(' val=any* ')' >] 10 | [trailer< '.' 'with_traceback' > trailer< '(' trc=any ')' >] > | any) ['from' chain=any] >""" 11 | 12 | def transform(self, node, results): 13 | name, val, trc = (results.get(u"name"), results.get(u"val"), results.get(u"trc")) 14 | chain = results.get(u"chain") 15 | if chain is not None: 16 | self.warning(node, u"explicit exception chaining is not supported in Python 2") 17 | chain.prev_sibling.remove() 18 | chain.remove() 19 | if trc is not None: 20 | val = val[0] if val else Leaf(token.NAME, u"None") 21 | val.prefix = trc.prefix = u" " 22 | kids = [Leaf(token.NAME, u"raise"), name.clone(), Comma(), 23 | val.clone(), Comma(), trc.clone()] 24 | raise_stmt = Node(syms.raise_stmt, kids) 25 | node.replace(raise_stmt) 26 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/libpasteurize/fixes/fix_throw.py: -------------------------------------------------------------------------------- 1 | u"""Fixer for 'g.throw(E(V).with_traceback(T))' -> 'g.throw(E, V, T)'""" 2 | 3 | from lib2to3 import fixer_base 4 | from lib2to3.pytree import Node, Leaf 5 | from lib2to3.pgen2 import token 6 | from lib2to3.fixer_util import Comma 7 | 8 | class FixThrow(fixer_base.BaseFix): 9 | 10 | PATTERN = u""" 11 | power< any trailer< '.' 'throw' > 12 | trailer< '(' args=power< exc=any trailer< '(' val=any* ')' > 13 | trailer< '.' 'with_traceback' > trailer< '(' trc=any ')' > > ')' > > 14 | """ 15 | 16 | def transform(self, node, results): 17 | syms = self.syms 18 | exc, val, trc = (results[u"exc"], results[u"val"], results[u"trc"]) 19 | val = val[0] if val else Leaf(token.NAME, u"None") 20 | val.prefix = trc.prefix = u" " 21 | kids = [exc.clone(), Comma(), val.clone(), Comma(), trc.clone()] 22 | args = results[u"args"] 23 | args.children = kids 24 | -------------------------------------------------------------------------------- /venv/lib/python3.9/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/markupsafe/_speedups.cpython-39-darwin.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/markupsafe/_speedups.cpython-39-darwin.so -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/netifaces-0.10.9-py3.9.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | LICENSE 2 | MANIFEST.in 3 | README.rst 4 | netifaces.c 5 | setup.cfg 6 | setup.py 7 | netifaces.egg-info/PKG-INFO 8 | netifaces.egg-info/SOURCES.txt 9 | netifaces.egg-info/dependency_links.txt 10 | netifaces.egg-info/top_level.txt 11 | netifaces.egg-info/zip-safe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/netifaces-0.10.9-py3.9.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/netifaces-0.10.9-py3.9.egg-info/installed-files.txt: -------------------------------------------------------------------------------- 1 | ../netifaces.cpython-39-darwin.so 2 | PKG-INFO 3 | SOURCES.txt 4 | dependency_links.txt 5 | top_level.txt 6 | zip-safe 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/netifaces-0.10.9-py3.9.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | netifaces 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/netifaces-0.10.9-py3.9.egg-info/zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/netifaces.cpython-39-darwin.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/netifaces.cpython-39-darwin.so -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/paho/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho/mqtt/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "1.5.1" 2 | 3 | 4 | class MQTTException(Exception): 5 | pass 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho_mqtt-1.5.1-py3.9.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho_mqtt-1.5.1-py3.9.egg-info/installed-files.txt: -------------------------------------------------------------------------------- 1 | ../paho/__init__.py 2 | ../paho/__pycache__/__init__.cpython-39.pyc 3 | ../paho/mqtt/__init__.py 4 | ../paho/mqtt/__pycache__/__init__.cpython-39.pyc 5 | ../paho/mqtt/__pycache__/client.cpython-39.pyc 6 | ../paho/mqtt/__pycache__/matcher.cpython-39.pyc 7 | ../paho/mqtt/__pycache__/packettypes.cpython-39.pyc 8 | ../paho/mqtt/__pycache__/properties.cpython-39.pyc 9 | ../paho/mqtt/__pycache__/publish.cpython-39.pyc 10 | ../paho/mqtt/__pycache__/reasoncodes.cpython-39.pyc 11 | ../paho/mqtt/__pycache__/subscribe.cpython-39.pyc 12 | ../paho/mqtt/__pycache__/subscribeoptions.cpython-39.pyc 13 | ../paho/mqtt/client.py 14 | ../paho/mqtt/matcher.py 15 | ../paho/mqtt/packettypes.py 16 | ../paho/mqtt/properties.py 17 | ../paho/mqtt/publish.py 18 | ../paho/mqtt/reasoncodes.py 19 | ../paho/mqtt/subscribe.py 20 | ../paho/mqtt/subscribeoptions.py 21 | PKG-INFO 22 | SOURCES.txt 23 | dependency_links.txt 24 | not-zip-safe 25 | requires.txt 26 | top_level.txt 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho_mqtt-1.5.1-py3.9.egg-info/not-zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho_mqtt-1.5.1-py3.9.egg-info/requires.txt: -------------------------------------------------------------------------------- 1 | 2 | [proxy] 3 | PySocks 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/paho_mqtt-1.5.1-py3.9.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | paho 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/past/types/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Forward-ports of types from Python 2 for use with Python 3: 3 | 4 | - ``basestring``: equivalent to ``(str, bytes)`` in ``isinstance`` checks 5 | - ``dict``: with list-producing .keys() etc. methods 6 | - ``str``: bytes-like, but iterating over them doesn't product integers 7 | - ``long``: alias of Py3 int with ``L`` suffix in the ``repr`` 8 | - ``unicode``: alias of Py3 str with ``u`` prefix in the ``repr`` 9 | 10 | """ 11 | 12 | from past import utils 13 | 14 | if utils.PY2: 15 | import __builtin__ 16 | basestring = __builtin__.basestring 17 | dict = __builtin__.dict 18 | str = __builtin__.str 19 | long = __builtin__.long 20 | unicode = __builtin__.unicode 21 | __all__ = [] 22 | else: 23 | from .basestring import basestring 24 | from .olddict import olddict 25 | from .oldstr import oldstr 26 | long = int 27 | unicode = str 28 | # from .unicode import unicode 29 | __all__ = ['basestring', 'olddict', 'oldstr', 'long', 'unicode'] 30 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/past/types/basestring.py: -------------------------------------------------------------------------------- 1 | """ 2 | An implementation of the basestring type for Python 3 3 | 4 | Example use: 5 | 6 | >>> s = b'abc' 7 | >>> assert isinstance(s, basestring) 8 | >>> from past.types import str as oldstr 9 | >>> s2 = oldstr(b'abc') 10 | >>> assert isinstance(s2, basestring) 11 | 12 | """ 13 | 14 | import sys 15 | 16 | from past.utils import with_metaclass, PY2 17 | 18 | if PY2: 19 | str = unicode 20 | 21 | ver = sys.version_info[:2] 22 | 23 | 24 | class BaseBaseString(type): 25 | def __instancecheck__(cls, instance): 26 | return isinstance(instance, (bytes, str)) 27 | 28 | def __subclasshook__(cls, thing): 29 | # TODO: What should go here? 30 | raise NotImplemented 31 | 32 | 33 | class basestring(with_metaclass(BaseBaseString)): 34 | """ 35 | A minimal backport of the Python 2 basestring type to Py3 36 | """ 37 | 38 | 39 | __all__ = ['basestring'] 40 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/REQUESTED -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [console_scripts] 2 | pip = pip._internal.cli.main:main 3 | pip3 = pip._internal.cli.main:main 4 | pip3.9 = pip._internal.cli.main:main 5 | 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip-21.0.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/__init__.py: -------------------------------------------------------------------------------- 1 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 2 | 3 | if MYPY_CHECK_RUNNING: 4 | from typing import List, Optional 5 | 6 | 7 | __version__ = "21.0.1" 8 | 9 | 10 | def main(args=None): 11 | # type: (Optional[List[str]]) -> int 12 | """This is an internal API only meant for use by pip's own console scripts. 13 | 14 | For additional details, see https://github.com/pypa/pip/issues/7498. 15 | """ 16 | from pip._internal.utils.entrypoints import _wrapper 17 | 18 | return _wrapper(args) 19 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/__main__.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | # Remove '' and current working directory from the first entry 5 | # of sys.path, if present to avoid using current directory 6 | # in pip commands check, freeze, install, list and show, 7 | # when invoked as python -m pip 8 | if sys.path[0] in ('', os.getcwd()): 9 | sys.path.pop(0) 10 | 11 | # If we are running from a wheel, add the wheel to sys.path 12 | # This allows the usage python pip-*.whl/pip install pip-*.whl 13 | if __package__ == '': 14 | # __file__ is pip-*.whl/pip/__main__.py 15 | # first dirname call strips of '/__main__.py', second strips off '/pip' 16 | # Resulting path is the name of the wheel itself 17 | # Add that to sys.path so we can import pip 18 | path = os.path.dirname(os.path.dirname(__file__)) 19 | sys.path.insert(0, path) 20 | 21 | from pip._internal.cli.main import main as _main 22 | 23 | if __name__ == '__main__': 24 | sys.exit(_main()) 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/__init__.py: -------------------------------------------------------------------------------- 1 | import pip._internal.utils.inject_securetransport # noqa 2 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 3 | 4 | if MYPY_CHECK_RUNNING: 5 | from typing import List, Optional 6 | 7 | 8 | def main(args=None): 9 | # type: (Optional[List[str]]) -> int 10 | """This is preserved for old console scripts that may still be referencing 11 | it. 12 | 13 | For additional details, see https://github.com/pypa/pip/issues/7498. 14 | """ 15 | from pip._internal.utils.entrypoints import _wrapper 16 | 17 | return _wrapper(args) 18 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py: -------------------------------------------------------------------------------- 1 | from contextlib import contextmanager 2 | 3 | from pip._vendor.contextlib2 import ExitStack 4 | 5 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 6 | 7 | if MYPY_CHECK_RUNNING: 8 | from typing import ContextManager, Iterator, TypeVar 9 | 10 | _T = TypeVar('_T', covariant=True) 11 | 12 | 13 | class CommandContextMixIn: 14 | def __init__(self): 15 | # type: () -> None 16 | super().__init__() 17 | self._in_main_context = False 18 | self._main_context = ExitStack() 19 | 20 | @contextmanager 21 | def main_context(self): 22 | # type: () -> Iterator[None] 23 | assert not self._in_main_context 24 | 25 | self._in_main_context = True 26 | try: 27 | with self._main_context: 28 | yield 29 | finally: 30 | self._in_main_context = False 31 | 32 | def enter_context(self, context_provider): 33 | # type: (ContextManager[_T]) -> _T 34 | assert self._in_main_context 35 | 36 | return self._main_context.enter_context(context_provider) 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py: -------------------------------------------------------------------------------- 1 | SUCCESS = 0 2 | ERROR = 1 3 | UNKNOWN_ERROR = 2 4 | VIRTUALENV_NOT_FOUND = 3 5 | PREVIOUS_BUILD_DIR_ERROR = 4 6 | NO_MATCHES_FOUND = 23 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py: -------------------------------------------------------------------------------- 1 | from pip._internal.distributions.sdist import SourceDistribution 2 | from pip._internal.distributions.wheel import WheelDistribution 3 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 4 | 5 | if MYPY_CHECK_RUNNING: 6 | from pip._internal.distributions.base import AbstractDistribution 7 | from pip._internal.req.req_install import InstallRequirement 8 | 9 | 10 | def make_distribution_for_install_requirement(install_req): 11 | # type: (InstallRequirement) -> AbstractDistribution 12 | """Returns a Distribution for the given InstallRequirement 13 | """ 14 | # Editable requirements will always be source distributions. They use the 15 | # legacy logic until we create a modern standard for them. 16 | if install_req.editable: 17 | return SourceDistribution(install_req) 18 | 19 | # If it's a wheel, it's a WheelDistribution 20 | if install_req.is_wheel: 21 | return WheelDistribution(install_req) 22 | 23 | # Otherwise, a SourceDistribution 24 | return SourceDistribution(install_req) 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py: -------------------------------------------------------------------------------- 1 | from pip._internal.distributions.base import AbstractDistribution 2 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 3 | 4 | if MYPY_CHECK_RUNNING: 5 | from typing import Optional 6 | 7 | from pip._vendor.pkg_resources import Distribution 8 | 9 | from pip._internal.index.package_finder import PackageFinder 10 | 11 | 12 | class InstalledDistribution(AbstractDistribution): 13 | """Represents an installed package. 14 | 15 | This does not need any preparation as the required information has already 16 | been computed. 17 | """ 18 | 19 | def get_pkg_resources_distribution(self): 20 | # type: () -> Optional[Distribution] 21 | return self.req.satisfied_by 22 | 23 | def prepare_distribution_metadata(self, finder, build_isolation): 24 | # type: (PackageFinder, bool) -> None 25 | pass 26 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py: -------------------------------------------------------------------------------- 1 | """Index interaction code 2 | """ 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/main.py: -------------------------------------------------------------------------------- 1 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 2 | 3 | if MYPY_CHECK_RUNNING: 4 | from typing import List, Optional 5 | 6 | 7 | def main(args=None): 8 | # type: (Optional[List[str]]) -> int 9 | """This is preserved for old console scripts that may still be referencing 10 | it. 11 | 12 | For additional details, see https://github.com/pypa/pip/issues/7498. 13 | """ 14 | from pip._internal.utils.entrypoints import _wrapper 15 | 16 | return _wrapper(args) 17 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py: -------------------------------------------------------------------------------- 1 | """A package that contains models that represent entities. 2 | """ 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py: -------------------------------------------------------------------------------- 1 | """ 2 | For types associated with installation schemes. 3 | 4 | For a general overview of available schemes and their context, see 5 | https://docs.python.org/3/install/index.html#alternate-installation. 6 | """ 7 | 8 | 9 | SCHEME_KEYS = ['platlib', 'purelib', 'headers', 'scripts', 'data'] 10 | 11 | 12 | class Scheme: 13 | """A Scheme holds paths which are used as the base directories for 14 | artifacts associated with a Python package. 15 | """ 16 | 17 | __slots__ = SCHEME_KEYS 18 | 19 | def __init__( 20 | self, 21 | platlib, # type: str 22 | purelib, # type: str 23 | headers, # type: str 24 | scripts, # type: str 25 | data, # type: str 26 | ): 27 | self.platlib = platlib 28 | self.purelib = purelib 29 | self.headers = headers 30 | self.scripts = scripts 31 | self.data = data 32 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains purely network-related utilities. 2 | """ 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py: -------------------------------------------------------------------------------- 1 | """For modules related to installing packages. 2 | """ 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py: -------------------------------------------------------------------------------- 1 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 2 | 3 | if MYPY_CHECK_RUNNING: 4 | from typing import Callable, List 5 | 6 | from pip._internal.req.req_install import InstallRequirement 7 | from pip._internal.req.req_set import RequirementSet 8 | 9 | InstallRequirementProvider = Callable[ 10 | [str, InstallRequirement], InstallRequirement 11 | ] 12 | 13 | 14 | class BaseResolver: 15 | def resolve(self, root_reqs, check_supported_wheels): 16 | # type: (List[InstallRequirement], bool) -> RequirementSet 17 | raise NotImplementedError() 18 | 19 | def get_installation_order(self, req_set): 20 | # type: (RequirementSet) -> List[InstallRequirement] 21 | raise NotImplementedError() 22 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py: -------------------------------------------------------------------------------- 1 | """For when pip wants to check the date or time. 2 | """ 3 | 4 | import datetime 5 | 6 | 7 | def today_is_later_than(year, month, day): 8 | # type: (int, int, int) -> bool 9 | today = datetime.date.today() 10 | given = datetime.date(year, month, day) 11 | 12 | return today > given 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py: -------------------------------------------------------------------------------- 1 | """Filetype information. 2 | """ 3 | from pip._internal.utils.misc import splitext 4 | from pip._internal.utils.typing import MYPY_CHECK_RUNNING 5 | 6 | if MYPY_CHECK_RUNNING: 7 | from typing import Tuple 8 | 9 | WHEEL_EXTENSION = '.whl' 10 | BZ2_EXTENSIONS = ('.tar.bz2', '.tbz') # type: Tuple[str, ...] 11 | XZ_EXTENSIONS = ('.tar.xz', '.txz', '.tlz', 12 | '.tar.lz', '.tar.lzma') # type: Tuple[str, ...] 13 | ZIP_EXTENSIONS = ('.zip', WHEEL_EXTENSION) # type: Tuple[str, ...] 14 | TAR_EXTENSIONS = ('.tar.gz', '.tgz', '.tar') # type: Tuple[str, ...] 15 | ARCHIVE_EXTENSIONS = ( 16 | ZIP_EXTENSIONS + BZ2_EXTENSIONS + TAR_EXTENSIONS + XZ_EXTENSIONS 17 | ) 18 | 19 | 20 | def is_archive_file(name): 21 | # type: (str) -> bool 22 | """Return True if `name` is a considered as an archive file.""" 23 | ext = splitext(name)[1].lower() 24 | if ext in ARCHIVE_EXTENSIONS: 25 | return True 26 | return False 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py: -------------------------------------------------------------------------------- 1 | """A helper module that injects SecureTransport, on import. 2 | 3 | The import should be done as early as possible, to ensure all requests and 4 | sessions (or whatever) are created after injecting SecureTransport. 5 | 6 | Note that we only do the injection on macOS, when the linked OpenSSL is too 7 | old to handle TLSv1.2. 8 | """ 9 | 10 | import sys 11 | 12 | 13 | def inject_securetransport(): 14 | # type: () -> None 15 | # Only relevant on macOS 16 | if sys.platform != "darwin": 17 | return 18 | 19 | try: 20 | import ssl 21 | except ImportError: 22 | return 23 | 24 | # Checks for OpenSSL 1.0.1 25 | if ssl.OPENSSL_VERSION_NUMBER >= 0x1000100f: 26 | return 27 | 28 | try: 29 | from pip._vendor.urllib3.contrib import securetransport 30 | except (ImportError, OSError): 31 | return 32 | 33 | securetransport.inject_into_urllib3() 34 | 35 | 36 | inject_securetransport() 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py: -------------------------------------------------------------------------------- 1 | # Expose a limited set of classes and functions so callers outside of 2 | # the vcs package don't need to import deeper than `pip._internal.vcs`. 3 | # (The test directory and imports protected by MYPY_CHECK_RUNNING may 4 | # still need to import from a vcs sub-package.) 5 | # Import all vcs modules to register each VCS in the VcsSupport object. 6 | import pip._internal.vcs.bazaar 7 | import pip._internal.vcs.git 8 | import pip._internal.vcs.mercurial 9 | import pip._internal.vcs.subversion # noqa: F401 10 | from pip._internal.vcs.versioncontrol import ( # noqa: F401 11 | RemoteNotFoundError, 12 | is_url, 13 | make_vcs_requirement_url, 14 | vcs, 15 | ) 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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.6" 8 | 9 | from .wrapper import CacheControl 10 | from .adapter import CacheControlAdapter 11 | from .controller import CacheController 12 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py: -------------------------------------------------------------------------------- 1 | from .file_cache import FileCache # noqa 2 | from .redis_cache import RedisCache # noqa 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 = DictCache() if cache is None else cache 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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import contents, where 2 | 3 | __version__ = "2020.12.05" 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | from pip._vendor.certifi import contents, where 4 | 5 | parser = argparse.ArgumentParser() 6 | parser.add_argument("-c", "--contents", action="store_true") 7 | args = parser.parse_args() 8 | 9 | if args.contents: 10 | print(contents()) 11 | else: 12 | print(where()) 13 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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__ = "4.0.0" 9 | VERSION = __version__.split('.') 10 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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.4' 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2012-2019 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.3.1' 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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | from .py import Trie 4 | 5 | __all__ = ["Trie"] 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import, division, unicode_literals 2 | 3 | try: 4 | from collections.abc import Mapping 5 | except ImportError: # Python 2.7 6 | from collections import Mapping 7 | 8 | 9 | class Trie(Mapping): 10 | """Abstract base class for tries""" 11 | 12 | def keys(self, prefix=None): 13 | # pylint:disable=arguments-differ 14 | keys = super(Trie, self).keys() 15 | 16 | if prefix is None: 17 | return set(keys) 18 | 19 | return {x for x in keys if x.startswith(prefix)} 20 | 21 | def has_keys_with_prefix(self, prefix): 22 | for key in self.keys(): 23 | if key.startswith(prefix): 24 | return True 25 | 26 | return False 27 | 28 | def longest_prefix(self, prefix): 29 | if prefix in self: 30 | return prefix 31 | 32 | for i in range(1, len(prefix) + 1): 33 | if prefix[:-i] in self: 34 | return prefix[:-i] 35 | 36 | raise KeyError(prefix) 37 | 38 | def longest_prefix_item(self, prefix): 39 | lprefix = self.longest_prefix(prefix) 40 | return (lprefix, self[lprefix]) 41 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py: -------------------------------------------------------------------------------- 1 | from .package_data import __version__ 2 | from .core import * 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py: -------------------------------------------------------------------------------- 1 | __version__ = '2.10' 2 | 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py: -------------------------------------------------------------------------------- 1 | version = (1, 0, 2) 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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__ = "20.9" 22 | 23 | __author__ = "Donald Stufft and individual contributors" 24 | __email__ = "donald@stufft.io" 25 | 26 | __license__ = "BSD-2-Clause or Apache-2.0" 27 | __copyright__ = "2014-2019 %s" % __author__ 28 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py: -------------------------------------------------------------------------------- 1 | """Wrappers to build Python packages using PEP 517 hooks 2 | """ 3 | 4 | __version__ = '0.9.1' 5 | 6 | from .wrappers import * # noqa: F401, F403 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py: -------------------------------------------------------------------------------- 1 | """Python 2/3 compatibility""" 2 | import json 3 | import sys 4 | 5 | 6 | # Handle reading and writing JSON in UTF-8, on Python 3 and 2. 7 | 8 | if sys.version_info[0] >= 3: 9 | # Python 3 10 | def write_json(obj, path, **kwargs): 11 | with open(path, 'w', encoding='utf-8') as f: 12 | json.dump(obj, f, **kwargs) 13 | 14 | def read_json(path): 15 | with open(path, 'r', encoding='utf-8') as f: 16 | return json.load(f) 17 | 18 | else: 19 | # Python 2 20 | def write_json(obj, path, **kwargs): 21 | with open(path, 'wb') as f: 22 | json.dump(obj, f, encoding='utf-8', **kwargs) 23 | 24 | def read_json(path): 25 | with open(path, 'rb') as f: 26 | return json.load(f) 27 | 28 | 29 | # FileNotFoundError 30 | 31 | try: 32 | FileNotFoundError = FileNotFoundError 33 | except NameError: 34 | FileNotFoundError = IOError 35 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py: -------------------------------------------------------------------------------- 1 | # .-. .-. .-. . . .-. .-. .-. .-. 2 | # |( |- |.| | | |- `-. | `-. 3 | # ' ' `-' `-`.`-' `-' `-' ' `-' 4 | 5 | __title__ = 'requests' 6 | __description__ = 'Python HTTP for Humans.' 7 | __url__ = 'https://requests.readthedocs.io' 8 | __version__ = '2.25.1' 9 | __build__ = 0x022501 10 | __author__ = 'Kenneth Reitz' 11 | __author_email__ = 'me@kennethreitz.org' 12 | __license__ = 'Apache 2.0' 13 | __copyright__ = 'Copyright 2020 Kenneth Reitz' 14 | __cake__ = u'\u2728 \U0001f370 \u2728' 15 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = [ 2 | "__version__", 3 | "AbstractProvider", 4 | "AbstractResolver", 5 | "BaseReporter", 6 | "InconsistentCandidate", 7 | "Resolver", 8 | "RequirementsConflicted", 9 | "ResolutionError", 10 | "ResolutionImpossible", 11 | "ResolutionTooDeep", 12 | ] 13 | 14 | __version__ = "0.5.4" 15 | 16 | 17 | from .providers import AbstractProvider, AbstractResolver 18 | from .reporters import BaseReporter 19 | from .resolvers import ( 20 | InconsistentCandidate, 21 | RequirementsConflicted, 22 | Resolver, 23 | ResolutionError, 24 | ResolutionImpossible, 25 | ResolutionTooDeep, 26 | ) 27 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py: -------------------------------------------------------------------------------- 1 | __all__ = ["Sequence"] 2 | 3 | try: 4 | from collections.abc import Sequence 5 | except ImportError: 6 | from collections import Sequence 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/toml/__init__.py: -------------------------------------------------------------------------------- 1 | """Python module which parses and emits TOML. 2 | 3 | Released under the MIT license. 4 | """ 5 | 6 | from pip._vendor.toml import encoder 7 | from pip._vendor.toml import decoder 8 | 9 | __version__ = "0.10.2" 10 | _spec_ = "0.5.0" 11 | 12 | load = decoder.load 13 | loads = decoder.loads 14 | TomlDecoder = decoder.TomlDecoder 15 | TomlDecodeError = decoder.TomlDecodeError 16 | TomlPreserveCommentDecoder = decoder.TomlPreserveCommentDecoder 17 | 18 | dump = encoder.dump 19 | dumps = encoder.dumps 20 | TomlEncoder = encoder.TomlEncoder 21 | TomlArraySeparatorEncoder = encoder.TomlArraySeparatorEncoder 22 | TomlPreserveInlineDictEncoder = encoder.TomlPreserveInlineDictEncoder 23 | TomlNumpyEncoder = encoder.TomlNumpyEncoder 24 | TomlPreserveCommentEncoder = encoder.TomlPreserveCommentEncoder 25 | TomlPathlibEncoder = encoder.TomlPathlibEncoder 26 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/toml/ordered.py: -------------------------------------------------------------------------------- 1 | from collections import OrderedDict 2 | from pip._vendor.toml import TomlEncoder 3 | from pip._vendor.toml import TomlDecoder 4 | 5 | 6 | class TomlOrderedDecoder(TomlDecoder): 7 | 8 | def __init__(self): 9 | super(self.__class__, self).__init__(_dict=OrderedDict) 10 | 11 | 12 | class TomlOrderedEncoder(TomlEncoder): 13 | 14 | def __init__(self): 15 | super(self.__class__, self).__init__(_dict=OrderedDict) 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/toml/tz.py: -------------------------------------------------------------------------------- 1 | from datetime import tzinfo, timedelta 2 | 3 | 4 | class TomlTz(tzinfo): 5 | def __init__(self, toml_offset): 6 | if toml_offset == "Z": 7 | self._raw_offset = "+00:00" 8 | else: 9 | self._raw_offset = toml_offset 10 | self._sign = -1 if self._raw_offset[0] == '-' else 1 11 | self._hours = int(self._raw_offset[1:3]) 12 | self._minutes = int(self._raw_offset[4:6]) 13 | 14 | def __deepcopy__(self, memo): 15 | return self.__class__(self._raw_offset) 16 | 17 | def tzname(self, dt): 18 | return "UTC" + self._raw_offset 19 | 20 | def utcoffset(self, dt): 21 | return self._sign * timedelta(hours=self._hours, minutes=self._minutes) 22 | 23 | def dst(self, dt): 24 | return timedelta(0) 25 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py: -------------------------------------------------------------------------------- 1 | # This file is protected via CODEOWNERS 2 | __version__ = "1.26.2" 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 is_prod_appengine() 10 | 11 | 12 | def is_appengine_sandbox(): 13 | """Reports if the app is running in the first generation sandbox. 14 | 15 | The second generation runtimes are technically still in a sandbox, but it 16 | is much less restrictive, so generally you shouldn't need to check for it. 17 | see https://cloud.google.com/appengine/docs/standard/runtimes 18 | """ 19 | return is_appengine() and os.environ["APPENGINE_RUNTIME"] == "python27" 20 | 21 | 22 | def is_local_appengine(): 23 | return "APPENGINE_RUNTIME" in os.environ and os.environ.get( 24 | "SERVER_SOFTWARE", "" 25 | ).startswith("Development/") 26 | 27 | 28 | def is_prod_appengine(): 29 | return "APPENGINE_RUNTIME" in os.environ and os.environ.get( 30 | "SERVER_SOFTWARE", "" 31 | ).startswith("Google App Engine/") 32 | 33 | 34 | def is_prod_appengine_mvms(): 35 | """Deprecated.""" 36 | return False 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 ( # type: ignore 14 | CertificateError, 15 | match_hostname, 16 | ) 17 | except ImportError: 18 | # Our vendored copy 19 | from ._implementation import CertificateError, match_hostname # type: ignore 20 | 21 | # Not needed, but documenting what we provide. 22 | __all__ = ("CertificateError", "match_hostname") 23 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py: -------------------------------------------------------------------------------- 1 | import collections 2 | 3 | from ..packages import six 4 | from ..packages.six.moves import queue 5 | 6 | if six.PY2: 7 | # Queue is imported for side effects on MS Windows. See issue #229. 8 | import Queue as _unused_module_Queue # noqa: F401 9 | 10 | 11 | class LifoQueue(queue.Queue): 12 | def _init(self, _): 13 | self.queue = collections.deque() 14 | 15 | def _qsize(self, len=len): 16 | return len(self.queue) 17 | 18 | def _put(self, item): 19 | self.queue.append(item) 20 | 21 | def _get(self): 22 | return self.queue.pop() 23 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt: -------------------------------------------------------------------------------- 1 | appdirs==1.4.4 2 | CacheControl==0.12.6 3 | colorama==0.4.4 4 | contextlib2==0.6.0.post1 5 | distlib==0.3.1 6 | distro==1.5.0 7 | html5lib==1.1 8 | msgpack==1.0.2 9 | packaging==20.9 10 | pep517==0.9.1 11 | progress==1.5 12 | pyparsing==2.4.7 13 | requests==2.25.1 14 | certifi==2020.12.05 15 | chardet==4.0.0 16 | idna==2.10 17 | urllib3==1.26.2 18 | resolvelib==0.5.4 19 | retrying==1.3.3 20 | setuptools==44.0.0 21 | six==1.15.0 22 | toml==0.10.2 23 | webencodings==0.5.1 24 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pkg_resources/_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__ = "20.4" 22 | 23 | __author__ = "Donald Stufft and individual contributors" 24 | __email__ = "donald@stufft.io" 25 | 26 | __license__ = "BSD-2-Clause or Apache-2.0" 27 | __copyright__ = "Copyright 2014-2019 %s" % __author__ 28 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pkg_resources/_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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | setuptools.setup( 3 | name="my-test-package", 4 | version="1.0", 5 | zip_safe=True, 6 | ) 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/REQUESTED -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | requests 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests/__version__.py: -------------------------------------------------------------------------------- 1 | # .-. .-. .-. . . .-. .-. .-. .-. 2 | # |( |- |.| | | |- `-. | `-. 3 | # ' ' `-' `-`.`-' `-' `-' ' `-' 4 | 5 | __title__ = 'requests' 6 | __description__ = 'Python HTTP for Humans.' 7 | __url__ = 'https://requests.readthedocs.io' 8 | __version__ = '2.25.1' 9 | __build__ = 0x022501 10 | __author__ = 'Kenneth Reitz' 11 | __author_email__ = 'me@kennethreitz.org' 12 | __license__ = 'Apache 2.0' 13 | __copyright__ = 'Copyright 2020 Kenneth Reitz' 14 | __cake__ = u'\u2728 \U0001f370 \u2728' 15 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 certifi import where 16 | 17 | if __name__ == '__main__': 18 | print(where()) 19 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 | locals()[package] = __import__(package) 8 | # This traversal is apparently necessary such that the identities are 9 | # preserved (requests.packages.urllib3.* is urllib3.*) 10 | for mod in list(sys.modules): 11 | if mod == package or mod.startswith(package + '.'): 12 | sys.modules['requests.packages.' + mod] = sys.modules[mod] 13 | 14 | # Kinda cool, though, right? 15 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/AUTHORS.rst: -------------------------------------------------------------------------------- 1 | Requests-toolbelt is written and maintained by Ian Cordasco, Cory Benfield and 2 | various contributors: 3 | 4 | Development Lead 5 | ```````````````` 6 | 7 | - Ian Cordasco 8 | 9 | - Cory Benfield 10 | 11 | 12 | Requests 13 | ```````` 14 | 15 | - Kenneth Reitz and various contributors 16 | 17 | 18 | Urllib3 19 | ``````` 20 | 21 | - Andrey Petrov 22 | 23 | 24 | Patches and Suggestions 25 | ``````````````````````` 26 | 27 | - Jay De Lanoy 28 | 29 | - Zhaoyu Luo 30 | 31 | - Markus Unterwaditzer 32 | 33 | - Bryce Boe (@bboe) 34 | 35 | - Dan Lipsitt (https://github.com/DanLipsitt) 36 | 37 | - Cea Stapleton (http://www.ceastapleton.com) 38 | 39 | - Patrick Creech 40 | 41 | - Mike Lambert (@mikelambert) 42 | 43 | - Ryan Barrett (https://snarfed.org/) 44 | 45 | - Victor Grau Serrat (@lacabra) 46 | 47 | - Yorgos Pagles 48 | 49 | - Thomas Hauk 50 | 51 | - Achim Herwig 52 | 53 | - Ryan Ashley -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Ian Cordasco, Cory Benfield 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/REQUESTED -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.32.3) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt-0.9.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | requests_toolbelt 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/adapters/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | requests-toolbelt.adapters 4 | ========================== 5 | 6 | See http://toolbelt.rtfd.org/ for documentation 7 | 8 | :copyright: (c) 2014 by Ian Cordasco and Cory Benfield 9 | :license: Apache v2.0, see LICENSE for more details 10 | """ 11 | 12 | from .ssl import SSLAdapter 13 | from .source import SourceAddressAdapter 14 | 15 | __all__ = ['SSLAdapter', 'SourceAddressAdapter'] 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/auth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/requests_toolbelt/auth/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/auth/_digest_auth_compat.py: -------------------------------------------------------------------------------- 1 | """Provide a compatibility layer for requests.auth.HTTPDigestAuth.""" 2 | import requests 3 | 4 | 5 | class _ThreadingDescriptor(object): 6 | def __init__(self, prop, default): 7 | self.prop = prop 8 | self.default = default 9 | 10 | def __get__(self, obj, objtype=None): 11 | return getattr(obj._thread_local, self.prop, self.default) 12 | 13 | def __set__(self, obj, value): 14 | setattr(obj._thread_local, self.prop, value) 15 | 16 | 17 | class _HTTPDigestAuth(requests.auth.HTTPDigestAuth): 18 | init = _ThreadingDescriptor('init', True) 19 | last_nonce = _ThreadingDescriptor('last_nonce', '') 20 | nonce_count = _ThreadingDescriptor('nonce_count', 0) 21 | chal = _ThreadingDescriptor('chal', {}) 22 | pos = _ThreadingDescriptor('pos', None) 23 | num_401_calls = _ThreadingDescriptor('num_401_calls', 1) 24 | 25 | 26 | if requests.__build__ < 0x020800: 27 | HTTPDigestAuth = requests.auth.HTTPDigestAuth 28 | else: 29 | HTTPDigestAuth = _HTTPDigestAuth 30 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/cookies/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/requests_toolbelt/cookies/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/cookies/forgetful.py: -------------------------------------------------------------------------------- 1 | """The module containing the code for ForgetfulCookieJar.""" 2 | from requests.cookies import RequestsCookieJar 3 | 4 | 5 | class ForgetfulCookieJar(RequestsCookieJar): 6 | def set_cookie(self, *args, **kwargs): 7 | return 8 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/downloadutils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/requests_toolbelt/downloadutils/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/multipart/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | requests_toolbelt.multipart 3 | =========================== 4 | 5 | See http://toolbelt.rtfd.org/ for documentation 6 | 7 | :copyright: (c) 2014 by Ian Cordasco and Cory Benfield 8 | :license: Apache v2.0, see LICENSE for more details 9 | """ 10 | 11 | from .encoder import MultipartEncoder, MultipartEncoderMonitor 12 | from .decoder import MultipartDecoder 13 | from .decoder import ImproperBodyPartContentException 14 | from .decoder import NonMultipartContentTypeException 15 | 16 | __title__ = 'requests-toolbelt' 17 | __authors__ = 'Ian Cordasco, Cory Benfield' 18 | __license__ = 'Apache v2.0' 19 | __copyright__ = 'Copyright 2014 Ian Cordasco, Cory Benfield' 20 | 21 | __all__ = [ 22 | 'MultipartEncoder', 23 | 'MultipartEncoderMonitor', 24 | 'MultipartDecoder', 25 | 'ImproperBodyPartContentException', 26 | 'NonMultipartContentTypeException', 27 | '__title__', 28 | '__authors__', 29 | '__license__', 30 | '__copyright__', 31 | ] 32 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/requests_toolbelt/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/requests_toolbelt/utils/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Jason R. Coombs 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to 5 | deal in the Software without restriction, including without limitation the 6 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 7 | sell copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 19 | IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/REQUESTED -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | https://files.pythonhosted.org/packages/source/c/certifi/certifi-2016.9.26.tar.gz#md5=baa81e951a29958563689d868ef1064d 2 | https://files.pythonhosted.org/packages/source/w/wincertstore/wincertstore-0.2.zip#md5=ae728f2f007185648d0c7a8679b361e2 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools-53.0.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | _distutils_hack 2 | pkg_resources 3 | setuptools 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py: -------------------------------------------------------------------------------- 1 | class SetuptoolsDeprecationWarning(Warning): 2 | """ 3 | Base class for warning deprecations in ``setuptools`` 4 | 5 | This class is not derived from ``DeprecationWarning``, and as such is 6 | visible by default. 7 | """ 8 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py: -------------------------------------------------------------------------------- 1 | """distutils 2 | 3 | The main package for the Python Module Distribution Utilities. Normally 4 | used from a setup script as 5 | 6 | from distutils.core import setup 7 | 8 | setup (...) 9 | """ 10 | 11 | import sys 12 | 13 | __version__ = sys.version[:sys.version.index(' ')] 14 | 15 | local = True 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py: -------------------------------------------------------------------------------- 1 | """distutils.command 2 | 3 | Package containing implementation of all the standard Distutils 4 | commands.""" 5 | 6 | __all__ = ['build', 7 | 'build_py', 8 | 'build_ext', 9 | 'build_clib', 10 | 'build_scripts', 11 | 'clean', 12 | 'install', 13 | 'install_lib', 14 | 'install_headers', 15 | 'install_scripts', 16 | 'install_data', 17 | 'sdist', 18 | 'register', 19 | 'bdist', 20 | 'bdist_dumb', 21 | 'bdist_rpm', 22 | 'bdist_wininst', 23 | 'check', 24 | 'upload', 25 | # These two are reserved for future use: 26 | #'bdist_sdux', 27 | #'bdist_pkgtool', 28 | # Note: 29 | # bdist_packager is not included because it only provides 30 | # an abstract base class 31 | ] 32 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | 4 | def _pythonlib_compat(): 5 | """ 6 | On Python 3.7 and earlier, distutils would include the Python 7 | library. See pypa/distutils#9. 8 | """ 9 | from distutils import sysconfig 10 | if not sysconfig.get_config_var('Py_ENABLED_SHARED'): 11 | return 12 | 13 | yield 'python{}.{}{}'.format( 14 | sys.hexversion >> 24, 15 | (sys.hexversion >> 16) & 0xff, 16 | sysconfig.get_config_var('ABIFLAGS'), 17 | ) 18 | 19 | 20 | def compose(f1, f2): 21 | return lambda *args, **kwargs: f1(f2(*args, **kwargs)) 22 | 23 | 24 | pythonlib = ( 25 | compose(list, _pythonlib_compat) 26 | if sys.version_info < (3, 8) 27 | and sys.platform != 'darwin' 28 | and sys.platform[:3] != 'aix' 29 | else list 30 | ) 31 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | # If DISTUTILS_DEBUG is anything other than the empty string, we run in 4 | # debug mode. 5 | DEBUG = os.environ.get('DISTUTILS_DEBUG') 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import subprocess 3 | 4 | 5 | def __optim_args_from_interpreter_flags(): 6 | """Return a list of command-line arguments reproducing the current 7 | optimization settings in sys.flags.""" 8 | args = [] 9 | value = sys.flags.optimize 10 | if value > 0: 11 | args.append("-" + "O" * value) 12 | return args 13 | 14 | 15 | _optim_args_from_interpreter_flags = getattr( 16 | subprocess, 17 | "_optim_args_from_interpreter_flags", 18 | __optim_args_from_interpreter_flags, 19 | ) 20 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py: -------------------------------------------------------------------------------- 1 | def aix_platform(osname, version, release): 2 | try: 3 | import _aix_support 4 | return _aix_support.aix_platform() 5 | except ImportError: 6 | pass 7 | return "%s-%s.%s" % (osname, version, release) 8 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_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__ = "20.4" 22 | 23 | __author__ = "Donald Stufft and individual contributors" 24 | __email__ = "donald@stufft.io" 25 | 26 | __license__ = "BSD-2-Clause or Apache-2.0" 27 | __copyright__ = "Copyright 2014-2019 %s" % __author__ 28 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/_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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/cli-32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/cli-32.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/cli-64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/cli-64.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/cli.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/cli.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = [ 2 | 'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop', 3 | 'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts', 4 | 'sdist', 'setopt', 'test', 'install_egg_info', 'install_scripts', 5 | 'bdist_wininst', 'upload_docs', 'build_clib', 'dist_info', 6 | ] 7 | 8 | from distutils.command.bdist import bdist 9 | import sys 10 | 11 | from setuptools.command import install_scripts 12 | 13 | if 'egg' not in bdist.format_commands: 14 | bdist.format_command['egg'] = ('bdist_egg', "Python .egg file") 15 | bdist.format_commands.append('egg') 16 | 17 | del bdist, sys 18 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py: -------------------------------------------------------------------------------- 1 | import distutils.command.bdist_rpm as orig 2 | 3 | 4 | class bdist_rpm(orig.bdist_rpm): 5 | """ 6 | Override the default bdist_rpm behavior to do the following: 7 | 8 | 1. Run egg_info to ensure the name and version are properly calculated. 9 | 2. Always run 'install' using --single-version-externally-managed to 10 | disable eggs in RPM distributions. 11 | """ 12 | 13 | def run(self): 14 | # ensure distro name is up-to-date 15 | self.run_command('egg_info') 16 | 17 | orig.bdist_rpm.run(self) 18 | 19 | def _make_spec_file(self): 20 | spec = orig.bdist_rpm._make_spec_file(self) 21 | spec = [ 22 | line.replace( 23 | "setup.py install ", 24 | "setup.py install --single-version-externally-managed " 25 | ).replace( 26 | "%setup", 27 | "%setup -n %{name}-%{unmangled_version}" 28 | ) 29 | for line in spec 30 | ] 31 | return spec 32 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/bdist_wininst.py: -------------------------------------------------------------------------------- 1 | import distutils.command.bdist_wininst as orig 2 | import warnings 3 | 4 | from setuptools import SetuptoolsDeprecationWarning 5 | 6 | 7 | class bdist_wininst(orig.bdist_wininst): 8 | def reinitialize_command(self, command, reinit_subcommands=0): 9 | """ 10 | Supplement reinitialize_command to work around 11 | http://bugs.python.org/issue20819 12 | """ 13 | cmd = self.distribution.reinitialize_command( 14 | command, reinit_subcommands) 15 | if command in ('install', 'install_lib'): 16 | cmd.install_lib = None 17 | return cmd 18 | 19 | def run(self): 20 | warnings.warn( 21 | "bdist_wininst is deprecated and will be removed in a future " 22 | "version. Use bdist_wheel (wheel packages) instead.", 23 | SetuptoolsDeprecationWarning 24 | ) 25 | 26 | self._is_running = True 27 | try: 28 | orig.bdist_wininst.run(self) 29 | finally: 30 | self._is_running = False 31 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/dist_info.py: -------------------------------------------------------------------------------- 1 | """ 2 | Create a dist_info directory 3 | As defined in the wheel specification 4 | """ 5 | 6 | import os 7 | 8 | from distutils.core import Command 9 | from distutils import log 10 | 11 | 12 | class dist_info(Command): 13 | 14 | description = 'create a .dist-info directory' 15 | 16 | user_options = [ 17 | ('egg-base=', 'e', "directory containing .egg-info directories" 18 | " (default: top of the source tree)"), 19 | ] 20 | 21 | def initialize_options(self): 22 | self.egg_base = None 23 | 24 | def finalize_options(self): 25 | pass 26 | 27 | def run(self): 28 | egg_info = self.get_finalized_command('egg_info') 29 | egg_info.egg_base = self.egg_base 30 | egg_info.finalize_options() 31 | egg_info.run() 32 | dist_info_dir = egg_info.egg_info[:-len('.egg-info')] + '.dist-info' 33 | log.info("creating '{}'".format(os.path.abspath(dist_info_dir))) 34 | 35 | bdist_wheel = self.get_finalized_command('bdist_wheel') 36 | bdist_wheel.egg2dist(egg_info.egg_info, dist_info_dir) 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/register.py: -------------------------------------------------------------------------------- 1 | from distutils import log 2 | import distutils.command.register as orig 3 | 4 | from setuptools.errors import RemovedCommandError 5 | 6 | 7 | class register(orig.register): 8 | """Formerly used to register packages on PyPI.""" 9 | 10 | def run(self): 11 | msg = ( 12 | "The register command has been removed, use twine to upload " 13 | + "instead (https://pypi.org/p/twine)" 14 | ) 15 | 16 | self.announce("ERROR: " + msg, log.ERROR) 17 | 18 | raise RemovedCommandError(msg) 19 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/saveopts.py: -------------------------------------------------------------------------------- 1 | from setuptools.command.setopt import edit_config, option_base 2 | 3 | 4 | class saveopts(option_base): 5 | """Save command-line options to a file""" 6 | 7 | description = "save supplied options to setup.cfg or other config file" 8 | 9 | def run(self): 10 | dist = self.distribution 11 | settings = {} 12 | 13 | for cmd in dist.command_options: 14 | 15 | if cmd == 'saveopts': 16 | continue # don't save our own options! 17 | 18 | for opt, (src, val) in dist.get_option_dict(cmd).items(): 19 | if src == "command line": 20 | settings.setdefault(cmd, {})[opt] = val 21 | 22 | edit_config(self.filename, settings, self.dry_run) 23 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/command/upload.py: -------------------------------------------------------------------------------- 1 | from distutils import log 2 | from distutils.command import upload as orig 3 | 4 | from setuptools.errors import RemovedCommandError 5 | 6 | 7 | class upload(orig.upload): 8 | """Formerly used to upload packages to PyPI.""" 9 | 10 | def run(self): 11 | msg = ( 12 | "The upload command has been removed, use twine to upload " 13 | + "instead (https://pypi.org/p/twine)" 14 | ) 15 | 16 | self.announce("ERROR: " + msg, log.ERROR) 17 | raise RemovedCommandError(msg) 18 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/dep_util.py: -------------------------------------------------------------------------------- 1 | from distutils.dep_util import newer_group 2 | 3 | 4 | # yes, this is was almost entirely copy-pasted from 5 | # 'newer_pairwise()', this is just another convenience 6 | # function. 7 | def newer_pairwise_group(sources_groups, targets): 8 | """Walk both arguments in parallel, testing if each source group is newer 9 | than its corresponding target. Returns a pair of lists (sources_groups, 10 | targets) where sources is newer than target, according to the semantics 11 | of 'newer_group()'. 12 | """ 13 | if len(sources_groups) != len(targets): 14 | raise ValueError( 15 | "'sources_group' and 'targets' must be the same length") 16 | 17 | # build a pair of lists (sources_groups, targets) where source is newer 18 | n_sources = [] 19 | n_targets = [] 20 | for i in range(len(sources_groups)): 21 | if newer_group(sources_groups[i], targets[i]): 22 | n_sources.append(sources_groups[i]) 23 | n_targets.append(targets[i]) 24 | 25 | return n_sources, n_targets 26 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/errors.py: -------------------------------------------------------------------------------- 1 | """setuptools.errors 2 | 3 | Provides exceptions used by setuptools modules. 4 | """ 5 | 6 | from distutils.errors import DistutilsError 7 | 8 | 9 | class RemovedCommandError(DistutilsError, RuntimeError): 10 | """Error used for commands that have been removed in setuptools. 11 | 12 | Since ``setuptools`` is built on ``distutils``, simply removing a command 13 | from ``setuptools`` will make the behavior fall back to ``distutils``; this 14 | error is raised if a command exists in ``distutils`` but has been actively 15 | removed in ``setuptools``. 16 | """ 17 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/gui-32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/gui-32.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/gui-64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/gui-64.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/gui.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/setuptools/gui.exe -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/launch.py: -------------------------------------------------------------------------------- 1 | """ 2 | Launch the Python script on the command line after 3 | setuptools is bootstrapped via import. 4 | """ 5 | 6 | # Note that setuptools gets imported implicitly by the 7 | # invocation of this script using python -m setuptools.launch 8 | 9 | import tokenize 10 | import sys 11 | 12 | 13 | def run(): 14 | """ 15 | Run the script in sys.argv[1] as if it had 16 | been invoked naturally. 17 | """ 18 | __builtins__ 19 | script_name = sys.argv[1] 20 | namespace = dict( 21 | __file__=script_name, 22 | __name__='__main__', 23 | __doc__=None, 24 | ) 25 | sys.argv[:] = sys.argv[1:] 26 | 27 | open_ = getattr(tokenize, 'open', open) 28 | with open_(script_name) as fid: 29 | script = fid.read() 30 | norm_script = script.replace('\\r\\n', '\\n') 31 | code = compile(norm_script, script_name, 'exec') 32 | exec(code, namespace) 33 | 34 | 35 | if __name__ == '__main__': 36 | run() 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/py34compat.py: -------------------------------------------------------------------------------- 1 | import importlib 2 | 3 | try: 4 | import importlib.util 5 | except ImportError: 6 | pass 7 | 8 | 9 | try: 10 | module_from_spec = importlib.util.module_from_spec 11 | except AttributeError: 12 | def module_from_spec(spec): 13 | return spec.loader.load_module(spec.name) 14 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl: -------------------------------------------------------------------------------- 1 | # EASY-INSTALL-DEV-SCRIPT: %(spec)r,%(script_name)r 2 | __requires__ = %(spec)r 3 | __import__('pkg_resources').require(%(spec)r) 4 | __file__ = %(dev_path)r 5 | with open(__file__) as f: 6 | exec(compile(f.read(), __file__, 'exec')) 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/script.tmpl: -------------------------------------------------------------------------------- 1 | # EASY-INSTALL-SCRIPT: %(spec)r,%(script_name)r 2 | __requires__ = %(spec)r 3 | __import__('pkg_resources').run_script(%(spec)r, %(script_name)r) 4 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/unicode_utils.py: -------------------------------------------------------------------------------- 1 | import unicodedata 2 | import sys 3 | 4 | 5 | # HFS Plus uses decomposed UTF-8 6 | def decompose(path): 7 | if isinstance(path, str): 8 | return unicodedata.normalize('NFD', path) 9 | try: 10 | path = path.decode('utf-8') 11 | path = unicodedata.normalize('NFD', path) 12 | path = path.encode('utf-8') 13 | except UnicodeError: 14 | pass # Not UTF-8 15 | return path 16 | 17 | 18 | def filesys_decode(path): 19 | """ 20 | Ensure that the given path is decoded, 21 | NONE when no expected encoding works 22 | """ 23 | 24 | if isinstance(path, str): 25 | return path 26 | 27 | fs_enc = sys.getfilesystemencoding() or 'utf-8' 28 | candidates = fs_enc, 'utf-8' 29 | 30 | for enc in candidates: 31 | try: 32 | return path.decode(enc) 33 | except UnicodeDecodeError: 34 | continue 35 | 36 | 37 | def try_encode(string, enc): 38 | "turn unicode encoding into a functional routine" 39 | try: 40 | return string.encode(enc) 41 | except UnicodeEncodeError: 42 | return None 43 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/version.py: -------------------------------------------------------------------------------- 1 | import pkg_resources 2 | 3 | try: 4 | __version__ = pkg_resources.get_distribution('setuptools').version 5 | except Exception: 6 | __version__ = 'unknown' 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/setuptools/windows_support.py: -------------------------------------------------------------------------------- 1 | import platform 2 | import ctypes 3 | 4 | 5 | def windows_only(func): 6 | if platform.system() != 'Windows': 7 | return lambda *args, **kwargs: None 8 | return func 9 | 10 | 11 | @windows_only 12 | def hide_file(path): 13 | """ 14 | Set the hidden attribute on a file or directory. 15 | 16 | From http://stackoverflow.com/questions/19622133/ 17 | 18 | `path` must be text. 19 | """ 20 | __import__('ctypes.wintypes') 21 | SetFileAttributes = ctypes.windll.kernel32.SetFileAttributesW 22 | SetFileAttributes.argtypes = ctypes.wintypes.LPWSTR, ctypes.wintypes.DWORD 23 | SetFileAttributes.restype = ctypes.wintypes.BOOL 24 | 25 | FILE_ATTRIBUTE_HIDDEN = 0x02 26 | 27 | ret = SetFileAttributes(path, FILE_ATTRIBUTE_HIDDEN) 28 | if not ret: 29 | raise ctypes.WinError() 30 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2008-2020 Andrey Petrov and contributors (see CONTRIBUTORS.txt) 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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.24.0) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | urllib3 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3/_version.py: -------------------------------------------------------------------------------- 1 | # This file is protected via CODEOWNERS 2 | __version__ = "1.26.4" 3 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3/contrib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/urllib3/contrib/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 is_prod_appengine() 10 | 11 | 12 | def is_appengine_sandbox(): 13 | """Reports if the app is running in the first generation sandbox. 14 | 15 | The second generation runtimes are technically still in a sandbox, but it 16 | is much less restrictive, so generally you shouldn't need to check for it. 17 | see https://cloud.google.com/appengine/docs/standard/runtimes 18 | """ 19 | return is_appengine() and os.environ["APPENGINE_RUNTIME"] == "python27" 20 | 21 | 22 | def is_local_appengine(): 23 | return "APPENGINE_RUNTIME" in os.environ and os.environ.get( 24 | "SERVER_SOFTWARE", "" 25 | ).startswith("Development/") 26 | 27 | 28 | def is_prod_appengine(): 29 | return "APPENGINE_RUNTIME" in os.environ and os.environ.get( 30 | "SERVER_SOFTWARE", "" 31 | ).startswith("Google App Engine/") 32 | 33 | 34 | def is_prod_appengine_mvms(): 35 | """Deprecated.""" 36 | return False 37 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3/packages/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from . import ssl_match_hostname 4 | 5 | __all__ = ("ssl_match_hostname",) 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3/packages/backports/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/urllib3/packages/backports/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/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 ( # type: ignore 14 | CertificateError, 15 | match_hostname, 16 | ) 17 | except ImportError: 18 | # Our vendored copy 19 | from ._implementation import CertificateError, match_hostname # type: ignore 20 | 21 | # Not needed, but documenting what we provide. 22 | __all__ = ("CertificateError", "match_hostname") 23 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/urllib3/util/queue.py: -------------------------------------------------------------------------------- 1 | import collections 2 | 3 | from ..packages import six 4 | from ..packages.six.moves import queue 5 | 6 | if six.PY2: 7 | # Queue is imported for side effects on MS Windows. See issue #229. 8 | import Queue as _unused_module_Queue # noqa: F401 9 | 10 | 11 | class LifoQueue(queue.Queue): 12 | def _init(self, _): 13 | self.queue = collections.deque() 14 | 15 | def _qsize(self, len=len): 16 | return len(self.queue) 17 | 18 | def _put(self, item): 19 | self.queue.append(item) 20 | 21 | def _get(self): 22 | return self.queue.pop() 23 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk-1.6.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk-1.6.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-2020 Cisco and/or its affiliates. 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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk-1.6.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/webexteamssdk-1.6.dist-info/REQUESTED -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk-1.6.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.34.2) 3 | Root-Is-Purelib: true 4 | Tag: py3-none-any 5 | 6 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk-1.6.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | webexteamssdk 2 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/webexteamssdk/models/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/webexteamssdk/models/mixins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/webexteamssdk/models/mixins/__init__.py -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | werkzeug 3 | ~~~~~~~~ 4 | 5 | Werkzeug is the Swiss Army knife of Python web development. 6 | 7 | It provides useful classes and functions for any WSGI application to 8 | make the life of a Python web developer much easier. All of the provided 9 | classes are independent from each other so you can mix it with any other 10 | library. 11 | 12 | :copyright: 2007 Pallets 13 | :license: BSD-3-Clause 14 | """ 15 | from .serving import run_simple 16 | from .test import Client 17 | from .wrappers import Request 18 | from .wrappers import Response 19 | 20 | __version__ = "1.0.1" 21 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/debug/shared/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/werkzeug/debug/shared/console.png -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/debug/shared/less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/werkzeug/debug/shared/less.png -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/debug/shared/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/werkzeug/debug/shared/more.png -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/debug/shared/source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/werkzeug/debug/shared/source.png -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/debug/shared/ubuntu.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CiscoDevNet/meraki-code/0200dcdb0be600ae5da6661f7a33ef92ff28f649/venv/lib/python3.9/site-packages/werkzeug/debug/shared/ubuntu.ttf -------------------------------------------------------------------------------- /venv/lib/python3.9/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 | -------------------------------------------------------------------------------- /venv/lib/python3.9/site-packages/werkzeug/wrappers/user_agent.py: -------------------------------------------------------------------------------- 1 | from ..useragents import UserAgent 2 | from ..utils import cached_property 3 | 4 | 5 | class UserAgentMixin(object): 6 | """Adds a `user_agent` attribute to the request object which 7 | contains the parsed user agent of the browser that triggered the 8 | request as a :class:`~werkzeug.useragents.UserAgent` object. 9 | """ 10 | 11 | @cached_property 12 | def user_agent(self): 13 | """The current user agent.""" 14 | return UserAgent(self.environ) 15 | -------------------------------------------------------------------------------- /venv/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = /usr/local/Cellar/python@3.9/3.9.2_1/libexec/bin 2 | include-system-site-packages = false 3 | version = 3.9.2 4 | --------------------------------------------------------------------------------