pyntcli 0.1.46__py3-none-any.whl → 0.1.48__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/pyntcli/__init__.py +1 -1
- build/lib/tests/auth/test_login.py +96 -0
- build/lib/tests/store/test_cred_store.py +11 -0
- pyntcli/__init__.py +1 -1
- pyntcli/auth/login.py +3 -0
- pyntcli/commands/postman.py +4 -0
- pyntcli/commands/root.py +1 -0
- pyntcli/pynt_docker/pynt_container.py +10 -2
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/METADATA +1 -1
- pyntcli-0.1.48.dist-info/RECORD +127 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/pyntcli/transport/__init__.py +0 -0
- build/lib/build/lib/pyntcli/transport/pynt_requests.py +0 -54
- build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/pyntcli/auth/login.py +0 -156
- build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/pyntcli/commands/har.py +0 -67
- build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/pyntcli/commands/root.py +0 -58
- build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/pyntcli/commands/util.py +0 -71
- build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/pyntcli/store/store.py +0 -58
- build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/pyntcli/transport/__init__.py +0 -0
- build/lib/pyntcli/transport/pynt_requests.py +0 -54
- build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/pyntcli/ui/report.py +0 -62
- build/lib/pyntcli/ui/ui_thread.py +0 -172
- pyntcli-0.1.46.dist-info/RECORD +0 -349
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/WHEEL +0 -0
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/entry_points.txt +0 -0
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/top_level.txt +0 -0
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import docker
|
|
2
|
-
from docker.errors import DockerException, APIError, ImageNotFound
|
|
3
|
-
from docker.types import Mount
|
|
4
|
-
import os
|
|
5
|
-
import argparse
|
|
6
|
-
from typing import List
|
|
7
|
-
|
|
8
|
-
from pyntcli.ui import ui_thread
|
|
9
|
-
from pyntcli.analytics import send as analytics
|
|
10
|
-
from pyntcli.store import CredStore
|
|
11
|
-
from pyntcli.auth.login import PYNT_CREDENTIALS
|
|
12
|
-
|
|
13
|
-
PYNT_DOCKER_IMAGE = "ghcr.io/pynt-io/pynt"
|
|
14
|
-
|
|
15
|
-
def create_mount(src, destination, mount_type="bind"):
|
|
16
|
-
return Mount(target=destination, source=src, type=mount_type)
|
|
17
|
-
|
|
18
|
-
class DockerNotAvailableException(Exception):
|
|
19
|
-
pass
|
|
20
|
-
|
|
21
|
-
class ImageUnavailableException(Exception):
|
|
22
|
-
pass
|
|
23
|
-
|
|
24
|
-
def get_docker_type():
|
|
25
|
-
try:
|
|
26
|
-
c = docker.from_env()
|
|
27
|
-
version_data = c.version()
|
|
28
|
-
platform = version_data.get("Platform")
|
|
29
|
-
|
|
30
|
-
if platform and platform.get("Name"):
|
|
31
|
-
return platform.get("Name")
|
|
32
|
-
|
|
33
|
-
return ""
|
|
34
|
-
|
|
35
|
-
except DockerException:
|
|
36
|
-
raise DockerNotAvailableException()
|
|
37
|
-
except Exception: #TODO: This is since windows is not behaving nice
|
|
38
|
-
raise DockerNotAvailableException()
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class PyntBaseConatiner():
|
|
42
|
-
def __init__(self,docker_type,docker_arguments,mounts, environment={}) -> None:
|
|
43
|
-
self.docker_type = docker_type
|
|
44
|
-
self.docker_arguments = docker_arguments
|
|
45
|
-
self.mounts = mounts
|
|
46
|
-
self.environment = environment
|
|
47
|
-
|
|
48
|
-
class PyntDockerPort:
|
|
49
|
-
def __init__(self, src, dest, name) -> None:
|
|
50
|
-
self.src = src
|
|
51
|
-
self.dest = dest
|
|
52
|
-
self.name = name
|
|
53
|
-
|
|
54
|
-
def get_container_with_arguments(args: argparse.Namespace , *port_args: PyntDockerPort) -> PyntBaseConatiner:
|
|
55
|
-
docker_arguments = []
|
|
56
|
-
if "desktop" in get_docker_type().lower():
|
|
57
|
-
ports = {}
|
|
58
|
-
for p in port_args:
|
|
59
|
-
ports[str(p.src)] = int(p.dest)
|
|
60
|
-
docker_type = PyntDockerDesktopContainer(ports=ports)
|
|
61
|
-
else:
|
|
62
|
-
docker_type = PyntNativeContainer(network="host")
|
|
63
|
-
for p in port_args:
|
|
64
|
-
docker_arguments.append(p.name)
|
|
65
|
-
docker_arguments.append(str(p.dest))
|
|
66
|
-
|
|
67
|
-
if "insecure" in args and args.insecure:
|
|
68
|
-
docker_arguments.append("--insecure")
|
|
69
|
-
|
|
70
|
-
if "dev_flags" in args:
|
|
71
|
-
docker_arguments += args.dev_flags.split(" ")
|
|
72
|
-
|
|
73
|
-
mounts = []
|
|
74
|
-
if "host_ca" in args and args.host_ca:
|
|
75
|
-
ca_name = os.path.basename(args.host_ca)
|
|
76
|
-
docker_arguments += ["--host-ca", ca_name]
|
|
77
|
-
mounts.append(create_mount(os.path.abspath(args.host_ca), "/etc/pynt/{}".format(ca_name)))
|
|
78
|
-
|
|
79
|
-
return PyntBaseConatiner(docker_type, docker_arguments, mounts, {PYNT_CREDENTIALS:CredStore().get_access_token()})
|
|
80
|
-
|
|
81
|
-
def _container_image_from_tag(tag: str) -> str:
|
|
82
|
-
if ":" in tag:
|
|
83
|
-
return tag.split(":")[0]
|
|
84
|
-
|
|
85
|
-
return tag
|
|
86
|
-
|
|
87
|
-
class PyntContainer():
|
|
88
|
-
def __init__(self, image_name, tag, detach, base_container: PyntBaseConatiner) -> None:
|
|
89
|
-
self.docker_client: docker.DockerClient = None
|
|
90
|
-
self.image = image_name if not os.environ.get("IMAGE") else os.environ.get("IMAGE")
|
|
91
|
-
self.tag = tag if not os.environ.get("TAG") else os.environ.get("TAG")
|
|
92
|
-
self.detach = detach
|
|
93
|
-
self.stdout = None
|
|
94
|
-
self.running = False
|
|
95
|
-
self.container_name = ""
|
|
96
|
-
self.base_container = base_container
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def _create_docker_client(self):
|
|
100
|
-
self.docker_client = docker.from_env()
|
|
101
|
-
pat = os.environ.get("DOCKER_PASSWORD")
|
|
102
|
-
username = os.environ.get("DOCKER_USERNAME")
|
|
103
|
-
registry = os.environ.get("DOCKER_REGISTRY")
|
|
104
|
-
if pat and username and registry:
|
|
105
|
-
self.docker_client.login(username=username, password=pat, registry=registry)
|
|
106
|
-
|
|
107
|
-
def _is_docker_image_up_to_date(self, image):
|
|
108
|
-
return True
|
|
109
|
-
|
|
110
|
-
def _handle_outdated_docker_image(self, image):
|
|
111
|
-
return image
|
|
112
|
-
|
|
113
|
-
def kill_other_instances(self):
|
|
114
|
-
for c in self.docker_client.containers.list():
|
|
115
|
-
if len(c.image.tags) and _container_image_from_tag(c.image.tags[0]) == self.image:
|
|
116
|
-
c.kill()
|
|
117
|
-
|
|
118
|
-
def stop(self):
|
|
119
|
-
if not self.running:
|
|
120
|
-
return
|
|
121
|
-
|
|
122
|
-
self.kill_other_instances()
|
|
123
|
-
|
|
124
|
-
self.docker_client.close()
|
|
125
|
-
self.docker_client = None
|
|
126
|
-
self.running = False
|
|
127
|
-
|
|
128
|
-
def is_alive(self):
|
|
129
|
-
if not self.docker_client or not self.container_name:
|
|
130
|
-
return False
|
|
131
|
-
|
|
132
|
-
l = self.docker_client.containers.list(filters={"name": self.container_name})
|
|
133
|
-
if len(l) != 1:
|
|
134
|
-
return False
|
|
135
|
-
|
|
136
|
-
return l[0].status == "running"
|
|
137
|
-
|
|
138
|
-
def pull_image(self):
|
|
139
|
-
try:
|
|
140
|
-
return self.docker_client.images.pull(self.image, tag=self.tag)
|
|
141
|
-
except APIError as e:
|
|
142
|
-
analytics.emit(analytics.ERROR,{"error": "Unable to pull image from ghcr: {}".format(e)})
|
|
143
|
-
return None
|
|
144
|
-
|
|
145
|
-
def get_image(self):
|
|
146
|
-
try:
|
|
147
|
-
image = self.pull_image()
|
|
148
|
-
if not image:
|
|
149
|
-
image = self.docker_client.images.get('{}:{}'.format(self.image,self.tag))
|
|
150
|
-
return image
|
|
151
|
-
except ImageNotFound:
|
|
152
|
-
raise ImageUnavailableException()
|
|
153
|
-
|
|
154
|
-
def run(self):
|
|
155
|
-
if not self.docker_client:
|
|
156
|
-
self._create_docker_client()
|
|
157
|
-
|
|
158
|
-
self.running = True
|
|
159
|
-
self.kill_other_instances()
|
|
160
|
-
|
|
161
|
-
ui_thread.print(ui_thread.PrinterText("Pulling latest docker", ui_thread.PrinterText.INFO))
|
|
162
|
-
image = self.get_image()
|
|
163
|
-
ui_thread.print(ui_thread.PrinterText("Docker pull done", ui_thread.PrinterText.INFO))
|
|
164
|
-
|
|
165
|
-
args = self.base_container.docker_arguments if self.base_container.docker_arguments else None
|
|
166
|
-
|
|
167
|
-
run_arguments = {
|
|
168
|
-
"image":image,
|
|
169
|
-
"detach":self.detach,
|
|
170
|
-
"mounts":self.base_container.mounts,
|
|
171
|
-
"environment": self.base_container.environment,
|
|
172
|
-
"stream": True,
|
|
173
|
-
"remove": True,
|
|
174
|
-
"command": args
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
run_arguments.update(self.base_container.docker_type.get_argumets())
|
|
178
|
-
|
|
179
|
-
c = self.docker_client.containers.run(**run_arguments)
|
|
180
|
-
self.container_name = c.name
|
|
181
|
-
self.stdout = c.logs(stream=True)
|
|
182
|
-
|
|
183
|
-
PyntContainerRegistery.instance().register_container(self)
|
|
184
|
-
|
|
185
|
-
class PyntDockerDesktopContainer():
|
|
186
|
-
def __init__(self, ports) -> None:
|
|
187
|
-
self.ports = ports
|
|
188
|
-
|
|
189
|
-
def get_argumets(self):
|
|
190
|
-
return {"ports": self.ports} if self.ports else {}
|
|
191
|
-
|
|
192
|
-
class PyntNativeContainer():
|
|
193
|
-
def __init__(self, network) -> None:
|
|
194
|
-
self.network = network
|
|
195
|
-
|
|
196
|
-
def get_argumets(self):
|
|
197
|
-
return {"network": self.network} if self.network else {}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
class PyntContainerRegistery():
|
|
201
|
-
_instance = None
|
|
202
|
-
|
|
203
|
-
def __init__(self) -> None:
|
|
204
|
-
self.containers: List[PyntContainer] = []
|
|
205
|
-
|
|
206
|
-
@staticmethod
|
|
207
|
-
def instance():
|
|
208
|
-
if not PyntContainerRegistery._instance:
|
|
209
|
-
PyntContainerRegistery._instance = PyntContainerRegistery()
|
|
210
|
-
|
|
211
|
-
return PyntContainerRegistery._instance
|
|
212
|
-
|
|
213
|
-
def register_container(self, c: PyntContainer):
|
|
214
|
-
self.containers.append(c)
|
|
215
|
-
|
|
216
|
-
def stop_all_containers(self):
|
|
217
|
-
for c in self.containers:
|
|
218
|
-
c.stop()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .store import CredStore
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
|
|
3
|
-
from .store_connector import StoreConnector
|
|
4
|
-
|
|
5
|
-
class JsonStoreConnector(StoreConnector):
|
|
6
|
-
def __init__(self, data) -> None:
|
|
7
|
-
if not data:
|
|
8
|
-
data = JsonStoreConnector.default_value()
|
|
9
|
-
super().__init__(data)
|
|
10
|
-
self.json = json.loads(self._data)
|
|
11
|
-
|
|
12
|
-
def get(self, key):
|
|
13
|
-
return self.json.get(key, None)
|
|
14
|
-
|
|
15
|
-
def put(self, key, value):
|
|
16
|
-
self.json[key] = value
|
|
17
|
-
|
|
18
|
-
def dump(self):
|
|
19
|
-
return json.dumps(self.json, indent=2)
|
|
20
|
-
|
|
21
|
-
@staticmethod
|
|
22
|
-
def default_value():
|
|
23
|
-
return json.dumps({})
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
from typing import Type
|
|
2
|
-
import os
|
|
3
|
-
import platform
|
|
4
|
-
|
|
5
|
-
from .json_connector import JsonStoreConnector
|
|
6
|
-
from .store_connector import StoreConnector
|
|
7
|
-
|
|
8
|
-
class Store():
|
|
9
|
-
def __init__(self, file_location: str, connector_type: Type[StoreConnector]) -> None :
|
|
10
|
-
self.file_location = file_location
|
|
11
|
-
self.connector:StoreConnector = None
|
|
12
|
-
self._file = None
|
|
13
|
-
self._connector_tpye = connector_type
|
|
14
|
-
|
|
15
|
-
def _get_file_data(self):
|
|
16
|
-
if self.connector:
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
dirname = os.path.dirname(self.file_location)
|
|
20
|
-
if not os.path.exists(dirname):
|
|
21
|
-
os.makedirs(dirname)
|
|
22
|
-
|
|
23
|
-
if not os.path.exists(self.file_location):
|
|
24
|
-
with open(self.file_location, "w") as f:
|
|
25
|
-
self.connector = self._connector_tpye(self._connector_tpye.default_value())
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
with open(self.file_location, "r+") as f:
|
|
29
|
-
self.connector = self._connector_tpye(f.read())
|
|
30
|
-
|
|
31
|
-
def get(self, key):
|
|
32
|
-
self._get_file_data()
|
|
33
|
-
return self.connector.get(key)
|
|
34
|
-
|
|
35
|
-
def put(self, key, value):
|
|
36
|
-
self._get_file_data()
|
|
37
|
-
self.connector.put(key, value)
|
|
38
|
-
|
|
39
|
-
def get_path(self):
|
|
40
|
-
return self.file_location
|
|
41
|
-
|
|
42
|
-
def __enter__(self):
|
|
43
|
-
self._get_file_data()
|
|
44
|
-
return self
|
|
45
|
-
|
|
46
|
-
def __exit__(self, type, value, traceback):
|
|
47
|
-
with open(self.file_location, "w") as f:
|
|
48
|
-
f.write(self.connector.dump())
|
|
49
|
-
|
|
50
|
-
class CredStore(Store):
|
|
51
|
-
def __init__(self) -> None:
|
|
52
|
-
dir = ".pynt"
|
|
53
|
-
super().__init__(file_location=os.path.join(os.path.expanduser("~"), dir, "creds.json"),
|
|
54
|
-
connector_type=JsonStoreConnector)
|
|
55
|
-
|
|
56
|
-
def get_access_token(self):
|
|
57
|
-
return self.get("token")["access_token"]
|
|
58
|
-
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
class StoreConnector():
|
|
2
|
-
def __init__(self, data) -> None:
|
|
3
|
-
self._data = data
|
|
4
|
-
|
|
5
|
-
def get(self, key):
|
|
6
|
-
raise NotImplemented()
|
|
7
|
-
|
|
8
|
-
def put(self, key, value):
|
|
9
|
-
raise NotImplementedError()
|
|
10
|
-
|
|
11
|
-
def dump(self):
|
|
12
|
-
raise NotImplementedError()
|
|
13
|
-
|
|
14
|
-
@classmethod
|
|
15
|
-
def default_value(cls):
|
|
16
|
-
raise NotImplementedError()
|
|
17
|
-
|
|
File without changes
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import websocket
|
|
2
|
-
|
|
3
|
-
def connect_progress_ws(address):
|
|
4
|
-
ws = websocket.WebSocket()
|
|
5
|
-
ws.connect(address)
|
|
6
|
-
return ws
|
|
7
|
-
|
|
8
|
-
def wrap_ws_progress(ws):
|
|
9
|
-
prev = 0
|
|
10
|
-
while ws.connected:
|
|
11
|
-
try:
|
|
12
|
-
current = int(ws.recv())
|
|
13
|
-
yield current - prev
|
|
14
|
-
prev = current
|
|
15
|
-
except websocket.WebSocketConnectionClosedException:
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
class PyntProgress():
|
|
19
|
-
def __init__(self, address, healthcheck, total, description) -> None:
|
|
20
|
-
self.running = False
|
|
21
|
-
self.trackable = PyntProgress.create_trackable(address, healthcheck)
|
|
22
|
-
self.total = total
|
|
23
|
-
self.description = description
|
|
24
|
-
|
|
25
|
-
@staticmethod
|
|
26
|
-
def create_trackable(address, healthcheck):
|
|
27
|
-
try:
|
|
28
|
-
healthcheck()
|
|
29
|
-
return wrap_ws_progress(connect_progress_ws(address))
|
|
30
|
-
except TimeoutError:
|
|
31
|
-
return None
|
|
32
|
-
|
|
33
|
-
def __enter__(self):
|
|
34
|
-
return self
|
|
35
|
-
|
|
36
|
-
def __exit__(self, exc_type, exc_value, exc_traceback):
|
|
37
|
-
self.running = False
|
|
38
|
-
|
|
39
|
-
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
from pyntcli.ui import ui_thread
|
|
2
|
-
|
|
3
|
-
def unexpected_error():
|
|
4
|
-
ui_thread.print(ui_thread.PrinterText("An Unexpected Error Occurred",style=ui_thread.PrinterText.WARNING) \
|
|
5
|
-
.with_line("") \
|
|
6
|
-
.with_line("Please tell us about it in our community channel and we will help you figure it out:",style=ui_thread.PrinterText.HEADER) \
|
|
7
|
-
.with_line("https://join.slack.com/t/pynt-community/shared_invite/zt-1mvacojz5-WNjbH4HN8iksmKpCLTxOiQ",style=ui_thread.PrinterText.HEADER))
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from rich.table import Table, Column
|
|
3
|
-
from pyntcli.ui import ui_thread
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class PyntTable():
|
|
8
|
-
def __init__(self, title) -> None:
|
|
9
|
-
self.table = Table(title=title,title_style="bold")
|
|
10
|
-
|
|
11
|
-
def set_columns(self, columns):
|
|
12
|
-
for col in columns:
|
|
13
|
-
self.table.add_column(col.header, style=col.style)
|
|
14
|
-
|
|
15
|
-
def add_row(self, *values):
|
|
16
|
-
self.table.add_row(*values)
|
|
17
|
-
|
|
18
|
-
def print(self):
|
|
19
|
-
ui_thread.print(ui_thread.PrinterText("").with_line(""))
|
|
20
|
-
ui_thread.print(self.table)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class PyntReporter():
|
|
24
|
-
def __init__(self,report_path) -> None:
|
|
25
|
-
try:
|
|
26
|
-
self.report = json.load(open(report_path))
|
|
27
|
-
except json.JSONDecodeError:
|
|
28
|
-
self.report = None
|
|
29
|
-
|
|
30
|
-
def print_summary(self):
|
|
31
|
-
if not self.report:
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
functional_tests = self.report["functionalTests"]
|
|
35
|
-
functional_table = PyntTable("Functional Tests")
|
|
36
|
-
|
|
37
|
-
functional_table.set_columns([
|
|
38
|
-
Column(header="Endpoints"),
|
|
39
|
-
Column(header="Requests")])
|
|
40
|
-
|
|
41
|
-
functional_table.add_row(str(functional_tests["Endpoints"]),
|
|
42
|
-
str(functional_tests["Requests"]))
|
|
43
|
-
|
|
44
|
-
security_tests = self.report["securityTests"]
|
|
45
|
-
security_table = PyntTable("Security Tests")
|
|
46
|
-
|
|
47
|
-
security_table.set_columns([
|
|
48
|
-
Column(header="Errors",style="red"),
|
|
49
|
-
Column(header="Warnings",style="yellow"),
|
|
50
|
-
Column(header="Passed",style="green",),
|
|
51
|
-
Column(header="Did Not Run")])
|
|
52
|
-
|
|
53
|
-
security_table.add_row(str(security_tests["Findings"]),
|
|
54
|
-
str(security_tests["Warnings"]),
|
|
55
|
-
str(security_tests["Passed"]),
|
|
56
|
-
str(security_tests["DidNotRun"]))
|
|
57
|
-
|
|
58
|
-
functional_table.print()
|
|
59
|
-
security_table.print()
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
from threading import Thread
|
|
2
|
-
import queue
|
|
3
|
-
import os
|
|
4
|
-
import time
|
|
5
|
-
from rich.text import Text
|
|
6
|
-
from rich.console import Console
|
|
7
|
-
from rich.status import Status
|
|
8
|
-
from rich.progress import Progress
|
|
9
|
-
from typing import Tuple
|
|
10
|
-
|
|
11
|
-
from pyntcli import __version__ as cli_version
|
|
12
|
-
from pyntcli.ui.progress import PyntProgress
|
|
13
|
-
|
|
14
|
-
class PrinterText():
|
|
15
|
-
DEFAULT = 0
|
|
16
|
-
HEADER = 1
|
|
17
|
-
INFO = 2
|
|
18
|
-
WARNING = 3
|
|
19
|
-
|
|
20
|
-
def __init__(self,text,style=DEFAULT):
|
|
21
|
-
self.text = Text(text, PrinterText.get_style(style))
|
|
22
|
-
|
|
23
|
-
@staticmethod
|
|
24
|
-
def get_style(style):
|
|
25
|
-
if style == PrinterText.INFO:
|
|
26
|
-
return "bold blue"
|
|
27
|
-
if style == PrinterText.WARNING:
|
|
28
|
-
return "bold red"
|
|
29
|
-
if style == PrinterText.HEADER:
|
|
30
|
-
return "bold"
|
|
31
|
-
if style == PrinterText.DEFAULT:
|
|
32
|
-
return None
|
|
33
|
-
|
|
34
|
-
def with_line(self, line, style=DEFAULT):
|
|
35
|
-
self.text.append(os.linesep)
|
|
36
|
-
self.text.append(Text(line, PrinterText.get_style(style)))
|
|
37
|
-
return self
|
|
38
|
-
|
|
39
|
-
class AnsiText():
|
|
40
|
-
def __init__(self, data) -> None:
|
|
41
|
-
self.data = data
|
|
42
|
-
|
|
43
|
-
@staticmethod
|
|
44
|
-
def wrap_gen(gen):
|
|
45
|
-
for v in gen:
|
|
46
|
-
yield AnsiText(v)
|
|
47
|
-
|
|
48
|
-
class Spinner():
|
|
49
|
-
def __init__(self, prompt, style) -> None:
|
|
50
|
-
self.prompt = prompt
|
|
51
|
-
self.style = style
|
|
52
|
-
self.runnning = False
|
|
53
|
-
|
|
54
|
-
def __enter__(self):
|
|
55
|
-
return self
|
|
56
|
-
|
|
57
|
-
def __exit__(self, exc_type, exc_value, exc_traceback):
|
|
58
|
-
self.running = False
|
|
59
|
-
|
|
60
|
-
def pynt_version()-> Tuple[str,int]:
|
|
61
|
-
return "Pynt CLI version " + cli_version,PrinterText.DEFAULT
|
|
62
|
-
|
|
63
|
-
def pynt_header()-> Tuple[str,int]:
|
|
64
|
-
return "API Security testing autopilot",PrinterText.DEFAULT
|
|
65
|
-
|
|
66
|
-
def gen_func_loop(gen):
|
|
67
|
-
for l in gen:
|
|
68
|
-
data = l
|
|
69
|
-
if type(data) == bytes:
|
|
70
|
-
data = l.decode("utf-8")
|
|
71
|
-
if not isinstance(data, AnsiText) and data[-1] == "\n":
|
|
72
|
-
data = data[:-1]
|
|
73
|
-
_print(data)
|
|
74
|
-
|
|
75
|
-
def print_generator(gen):
|
|
76
|
-
t = Thread(target=gen_func_loop, args=(gen,), daemon=True)
|
|
77
|
-
t.start()
|
|
78
|
-
|
|
79
|
-
def _print(s):
|
|
80
|
-
Printer.instance().print(s)
|
|
81
|
-
|
|
82
|
-
def print(s):
|
|
83
|
-
if type(s) == bytes:
|
|
84
|
-
s = s.decode("utf-8")
|
|
85
|
-
_print(s)
|
|
86
|
-
|
|
87
|
-
def stop():
|
|
88
|
-
Printer.instance().stop()
|
|
89
|
-
|
|
90
|
-
class Printer():
|
|
91
|
-
_instace = None
|
|
92
|
-
|
|
93
|
-
def __init__(self) -> None:
|
|
94
|
-
self.running = False
|
|
95
|
-
self.run_thread = Thread(target=self._print_in_loop, daemon=True)
|
|
96
|
-
self.print_queue = queue.Queue()
|
|
97
|
-
self.console = Console(tab_size=4)
|
|
98
|
-
|
|
99
|
-
@staticmethod
|
|
100
|
-
def instance():
|
|
101
|
-
if not Printer._instace:
|
|
102
|
-
Printer._instace = Printer()
|
|
103
|
-
Printer._instace.start()
|
|
104
|
-
|
|
105
|
-
return Printer._instace
|
|
106
|
-
|
|
107
|
-
def start(self):
|
|
108
|
-
self.running = True
|
|
109
|
-
self.run_thread.start()
|
|
110
|
-
|
|
111
|
-
def _handle_spinner(self, spinner):
|
|
112
|
-
spinner.running = True
|
|
113
|
-
s = Status(spinner.prompt, spinner=spinner.style, console=self.console)
|
|
114
|
-
s.start()
|
|
115
|
-
while spinner.running and self.running:
|
|
116
|
-
time.sleep(0.5)
|
|
117
|
-
s.stop()
|
|
118
|
-
|
|
119
|
-
def _handle_progress(self, progress):
|
|
120
|
-
if not progress.trackable:
|
|
121
|
-
return
|
|
122
|
-
progress.running = True
|
|
123
|
-
with Progress(console=self.console, transient=True) as p:
|
|
124
|
-
t = p.add_task(description=progress.description, total=progress.total)
|
|
125
|
-
for update in progress.trackable:
|
|
126
|
-
if not (progress.running and self.running):
|
|
127
|
-
return
|
|
128
|
-
p.update(t, advance=update)
|
|
129
|
-
time.sleep(0.5)
|
|
130
|
-
|
|
131
|
-
def _print_in_loop(self):
|
|
132
|
-
while self.running:
|
|
133
|
-
try:
|
|
134
|
-
data = self.print_queue.get(timeout=1)
|
|
135
|
-
if isinstance(data, list):
|
|
136
|
-
data = data[0]
|
|
137
|
-
if isinstance(data, Spinner):
|
|
138
|
-
self._handle_spinner(data)
|
|
139
|
-
continue
|
|
140
|
-
if isinstance(data, PyntProgress):
|
|
141
|
-
self._handle_progress(data)
|
|
142
|
-
continue
|
|
143
|
-
else:
|
|
144
|
-
self.console.print(data)
|
|
145
|
-
except queue.Empty:
|
|
146
|
-
pass
|
|
147
|
-
|
|
148
|
-
while not self.print_queue.empty():
|
|
149
|
-
self.console.print(self.print_queue.get())
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
def print(self, data):
|
|
153
|
-
if isinstance(data,PrinterText):
|
|
154
|
-
data = data.text
|
|
155
|
-
if isinstance(data, AnsiText):
|
|
156
|
-
data = Text.from_ansi(data.data.decode())
|
|
157
|
-
self.print_queue.put(data)
|
|
158
|
-
|
|
159
|
-
def stop(self):
|
|
160
|
-
self.running = False
|
|
161
|
-
self.run_thread.join()
|
|
162
|
-
|
|
163
|
-
def spinner(prompt, style):
|
|
164
|
-
s = Spinner(prompt, style)
|
|
165
|
-
_print([s])
|
|
166
|
-
return s
|
|
167
|
-
|
|
168
|
-
def progress(what_to_track,healthcheck, description, total=100):
|
|
169
|
-
pointer_to_progress = [PyntProgress(what_to_track,healthcheck, total, description)]
|
|
170
|
-
_print(pointer_to_progress)
|
|
171
|
-
return pointer_to_progress[0]
|
|
172
|
-
|
|
File without changes
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
import time
|
|
3
|
-
import platform
|
|
4
|
-
|
|
5
|
-
from pyntcli import __version__
|
|
6
|
-
from pyntcli.transport import pynt_requests
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
PYNT_DEFAULT_USER_ID = "d9e3b82b-2900-43bf-8c8f-7ffe2f0cda36"
|
|
10
|
-
MIXPANEL_TOKEN = "05c26edb86084bbbb803eed6818cd8aa"
|
|
11
|
-
MIXPANEL_URL = "https://api-eu.mixpanel.com/track?ip=1"
|
|
12
|
-
|
|
13
|
-
def stop():
|
|
14
|
-
if not AnalyticsSender._instance:
|
|
15
|
-
return
|
|
16
|
-
AnalyticsSender.instance().done()
|
|
17
|
-
|
|
18
|
-
def emit(event, properties=None):
|
|
19
|
-
AnalyticsSender.instance().emit(event, properties)
|
|
20
|
-
|
|
21
|
-
def set_user_id(user_id):
|
|
22
|
-
AnalyticsSender.instance().set_user_id(user_id)
|
|
23
|
-
|
|
24
|
-
CLI_START = "cli_start"
|
|
25
|
-
LOGIN_START = "cli_login_start"
|
|
26
|
-
LOGIN_DONE = "cli_login_done"
|
|
27
|
-
ERROR = "error"
|
|
28
|
-
|
|
29
|
-
class AnalyticsSender():
|
|
30
|
-
_instance = None
|
|
31
|
-
|
|
32
|
-
def __init__(self, user_id=PYNT_DEFAULT_USER_ID) -> None:
|
|
33
|
-
self.user_id = user_id
|
|
34
|
-
self.version = __version__
|
|
35
|
-
self.events = []
|
|
36
|
-
|
|
37
|
-
@staticmethod
|
|
38
|
-
def instance():
|
|
39
|
-
if not AnalyticsSender._instance:
|
|
40
|
-
AnalyticsSender._instance = AnalyticsSender()
|
|
41
|
-
|
|
42
|
-
return AnalyticsSender._instance
|
|
43
|
-
|
|
44
|
-
def base_event(self, event_type):
|
|
45
|
-
return {
|
|
46
|
-
"event": event_type,
|
|
47
|
-
"properties": {
|
|
48
|
-
"time": time.time(),
|
|
49
|
-
"distinct_id": self.user_id,
|
|
50
|
-
"$os": platform.platform(),
|
|
51
|
-
"cli_version": self.version,
|
|
52
|
-
"token": MIXPANEL_TOKEN
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
def emit(self, event, properties):
|
|
57
|
-
base_event = self.base_event(event)
|
|
58
|
-
|
|
59
|
-
if properties:
|
|
60
|
-
for k,v in properties.items():
|
|
61
|
-
base_event["properties"][k] = v
|
|
62
|
-
|
|
63
|
-
if self.user_id != PYNT_DEFAULT_USER_ID:
|
|
64
|
-
pynt_requests.post(MIXPANEL_URL, json=[base_event])
|
|
65
|
-
else:
|
|
66
|
-
self.events.append(base_event)
|
|
67
|
-
|
|
68
|
-
def set_user_id(self, user_id):
|
|
69
|
-
self.user_id = user_id
|
|
70
|
-
for i, _ in enumerate(self.events):
|
|
71
|
-
self.events[i]["properties"]["distinct_id"] = user_id
|
|
72
|
-
self.done()
|
|
73
|
-
|
|
74
|
-
def done(self):
|
|
75
|
-
if self.events:
|
|
76
|
-
pynt_requests.post(MIXPANEL_URL, json=self.events)
|
|
77
|
-
self.events = []
|