appmap 2.1.6__tar.gz → 2.1.8__tar.gz
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.
- {appmap-2.1.6 → appmap-2.1.8}/PKG-INFO +5 -5
- {appmap-2.1.6 → appmap-2.1.8}/README.md +3 -4
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/env.py +14 -13
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/recording.py +3 -1
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/conftest.py +2 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_events.py +1 -2
- {appmap-2.1.6 → appmap-2.1.8}/appmap/__init__.py +6 -1
- {appmap-2.1.6 → appmap-2.1.8}/pyproject.toml +1 -1
- {appmap-2.1.6 → appmap-2.1.8}/LICENSE +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/configuration.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/django.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/event.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/fastapi.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/flask.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/generation.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/importer.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/instrument.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/labels.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/metadata.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/noappmap.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/py_version_check.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/recorder.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/remote_recording.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/singleton.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/appmap_test_base.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/bin/server_runner +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-all-paths-malformed.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-broken.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-class.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-empty-path.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-exclude-fn.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-func.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-malformed-path.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap-no-pyyaml.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap_testing/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/appmap_testing/django_simplelazyobject.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config/src/package/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config/test/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config/test/foo.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-exclude/.hide/hidden_mod/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-exclude/node_modules/node_mod/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-exclude/src/package/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-exclude/test/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-exclude/venv/venv_mod/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-up/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-up/project/p1/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-up/project/p2/sub1/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/djangoapp.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/hello_world.html +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/middleware.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/settings.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/settings_dev.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/djangoapp/urls.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/manage.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/pytest.ini +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/test/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/test/test_app.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/test/test_request.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/django/test/test_unittest_setup.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/example_class.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/expected.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/fastapi/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/fastapi/fastapiapp/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/fastapi/fastapiapp/main.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/fastapi/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/fastapi/test_app.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask/flaskapp.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask/templates/test.html +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask/test_app.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask-instrumented/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask-instrumented/flaskapp.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask-instrumented/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/flask-instrumented/test_app.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/package1/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/package1/package2/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/package1/package2/__main__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/package1/package2/mod1.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/params.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/properties_class.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/appmap-no-test-cases.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/pytest-numpy1-no-test-cases.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/pytest-numpy1.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/pytest-numpy2-no-test-cases.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/pytest-numpy2.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/status_errored.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/status_failed.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/status_xfailed.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/simple.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/tests/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/tests/test_noappmap.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/tests/test_simple.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest-instrumented/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest-instrumented/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest-instrumented/test_instrumented.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/remote.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/.gitignore +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/appmap-no-test-cases.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/expected/pytest-no-test-cases.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/expected/pytest.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/test/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/test/test_deferred.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/appmap-no-test-cases.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/appmap.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/pytest.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_errored.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_failed.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_xfailed.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_xsucceeded.metadata.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/unittest-no-test-cases.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/unittest.appmap.json +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/init/sitecustomize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/simple/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/simple/test_noappmap.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/simple/test_simple.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/helpers.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/normalize.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_command.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_configuration.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_describe_value.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_django.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_django_simplelazyobject.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_env.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_fastapi.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_flask.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_generation.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_http.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_importer.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_labels.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_metadata.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_params.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_properties.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_recording.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_runner.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_sqlalchemy.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_test_frameworks.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/test_util.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/test/web_framework.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/testing_framework.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/trace_logger.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/unittest.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/utils.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/_appmap/web_framework.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/command/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/command/appmap_agent_init.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/command/appmap_agent_status.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/command/appmap_agent_validate.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/command/runner.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/django.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/fastapi.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/flask.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/http.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/crypto.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/django.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/flask.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/formats.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/http.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/jobs.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/jwt.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/logger.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/labeling/random.yml +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/pytest.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/sqlalchemy.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/unittest.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap/uvicorn.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/appmap.pth +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/vendor/_appmap/wrapt/LICENSE +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/vendor/_appmap/wrapt/__init__.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/vendor/_appmap/wrapt/arguments.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/vendor/_appmap/wrapt/decorators.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/vendor/_appmap/wrapt/importer.py +0 -0
- {appmap-2.1.6 → appmap-2.1.8}/vendor/_appmap/wrapt/wrappers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: appmap
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.8
|
|
4
4
|
Summary: Create AppMap files by recording a Python application.
|
|
5
5
|
Home-page: https://github.com/applandinc/appmap-python
|
|
6
6
|
License: MIT
|
|
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
24
|
Classifier: Topic :: Software Development
|
|
24
25
|
Classifier: Topic :: Software Development :: Debuggers
|
|
25
26
|
Classifier: Topic :: Software Development :: Documentation
|
|
@@ -121,16 +122,15 @@ Note that you must install the dependencies contained in
|
|
|
121
122
|
[requirements-dev.txt](requirements-dev.txt) before running tests. See the explanation in
|
|
122
123
|
[pyproject.toml](pyproject.toml) for details.
|
|
123
124
|
|
|
124
|
-
Additionally, the tests currently require that you set `APPMAP=true
|
|
125
|
-
|
|
126
|
-
set the environment variable.
|
|
125
|
+
Additionally, the tests currently require that you set `APPMAP=true` and
|
|
126
|
+
`APPMAP_DISPLAY_PARAMS=true`.
|
|
127
127
|
|
|
128
128
|
[pytest](https://docs.pytest.org/en/stable/) for testing:
|
|
129
129
|
|
|
130
130
|
```
|
|
131
131
|
% cd appmap-python
|
|
132
132
|
% pip install -r requirements-test.txt
|
|
133
|
-
% poetry run pytest
|
|
133
|
+
% APPMAP=true APPMAP_DISPLAY_PARAMS=true poetry run pytest
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
### tox
|
|
@@ -90,16 +90,15 @@ Note that you must install the dependencies contained in
|
|
|
90
90
|
[requirements-dev.txt](requirements-dev.txt) before running tests. See the explanation in
|
|
91
91
|
[pyproject.toml](pyproject.toml) for details.
|
|
92
92
|
|
|
93
|
-
Additionally, the tests currently require that you set `APPMAP=true
|
|
94
|
-
|
|
95
|
-
set the environment variable.
|
|
93
|
+
Additionally, the tests currently require that you set `APPMAP=true` and
|
|
94
|
+
`APPMAP_DISPLAY_PARAMS=true`.
|
|
96
95
|
|
|
97
96
|
[pytest](https://docs.pytest.org/en/stable/) for testing:
|
|
98
97
|
|
|
99
98
|
```
|
|
100
99
|
% cd appmap-python
|
|
101
100
|
% pip install -r requirements-test.txt
|
|
102
|
-
% poetry run pytest
|
|
101
|
+
% APPMAP=true APPMAP_DISPLAY_PARAMS=true poetry run pytest
|
|
103
102
|
```
|
|
104
103
|
|
|
105
104
|
### tox
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Initialize from the environment"""
|
|
2
2
|
|
|
3
|
+
from functools import cached_property
|
|
3
4
|
import logging
|
|
4
5
|
import logging.config
|
|
5
6
|
import os
|
|
@@ -39,13 +40,13 @@ class Env(metaclass=SingletonMeta):
|
|
|
39
40
|
|
|
40
41
|
self.log_file_creation_failed = False
|
|
41
42
|
self._configure_logging()
|
|
42
|
-
# This uses
|
|
43
|
-
# tests use this split to make it easier to control
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
self.
|
|
43
|
+
# This uses the underscore-decorated, rather than the undecorated variants, to control
|
|
44
|
+
# whether these settings are enabled. The tests use this split to make it easier to control
|
|
45
|
+
# them.
|
|
46
|
+
enabled = self._env.get("_APPMAP", None)
|
|
47
|
+
self._enabled = enabled is not None and enabled.lower() != "false"
|
|
48
|
+
display_params = self._env.get("_APPMAP_DISPLAY_PARAMS", None)
|
|
49
|
+
self._display_params = display_params is not None and display_params.lower() != "false"
|
|
49
50
|
|
|
50
51
|
logger = logging.getLogger(__name__)
|
|
51
52
|
# The user shouldn't set APPMAP_OUTPUT_DIR, but some tests depend on being able to use it.
|
|
@@ -69,13 +70,13 @@ class Env(metaclass=SingletonMeta):
|
|
|
69
70
|
def delete(self, name):
|
|
70
71
|
del self._env[name]
|
|
71
72
|
|
|
72
|
-
@
|
|
73
|
+
@cached_property
|
|
73
74
|
def root_dir(self):
|
|
74
|
-
return self.
|
|
75
|
+
return str(self._cwd) + "/"
|
|
75
76
|
|
|
76
|
-
@
|
|
77
|
+
@cached_property
|
|
77
78
|
def root_dir_len(self):
|
|
78
|
-
return self.
|
|
79
|
+
return len(self.root_dir)
|
|
79
80
|
|
|
80
81
|
@property
|
|
81
82
|
def output_dir(self):
|
|
@@ -123,7 +124,7 @@ class Env(metaclass=SingletonMeta):
|
|
|
123
124
|
if value:
|
|
124
125
|
self.set(key, value)
|
|
125
126
|
|
|
126
|
-
@
|
|
127
|
+
@cached_property
|
|
127
128
|
def is_appmap_repo(self):
|
|
128
129
|
return os.path.exists("appmap/__init__.py") and os.path.exists(
|
|
129
130
|
"_appmap/__init__.py"
|
|
@@ -131,7 +132,7 @@ class Env(metaclass=SingletonMeta):
|
|
|
131
132
|
|
|
132
133
|
@property
|
|
133
134
|
def display_params(self):
|
|
134
|
-
return self.
|
|
135
|
+
return self._display_params
|
|
135
136
|
|
|
136
137
|
def getLogger(self, name) -> trace_logger.TraceLogger:
|
|
137
138
|
return cast(trace_logger.TraceLogger, logging.getLogger(name))
|
|
@@ -115,7 +115,9 @@ def initialize():
|
|
|
115
115
|
nonlocal r
|
|
116
116
|
r.stop()
|
|
117
117
|
now = datetime.now(timezone.utc)
|
|
118
|
-
|
|
118
|
+
iso_time = now.isoformat(timespec="seconds").replace("+00:00", "Z")
|
|
119
|
+
process_id = os.getpid()
|
|
120
|
+
appmap_name = f"{iso_time}_{process_id}"
|
|
119
121
|
recorder_type = "process"
|
|
120
122
|
metadata = {
|
|
121
123
|
"name": appmap_name,
|
|
@@ -68,6 +68,8 @@ def pytest_runtest_setup(item):
|
|
|
68
68
|
elif appmap_enabled is None:
|
|
69
69
|
env.pop("_APPMAP", None)
|
|
70
70
|
|
|
71
|
+
env["_APPMAP_DISPLAY_PARAMS"] = env.get("APPMAP_DISPLAY_PARAMS", "true")
|
|
72
|
+
|
|
71
73
|
_appmap.initialize(env=env) # pylint: disable=protected-access
|
|
72
74
|
|
|
73
75
|
# Some tests want yaml instrumented, others don't.
|
|
@@ -9,7 +9,6 @@ from threading import Thread
|
|
|
9
9
|
import pytest
|
|
10
10
|
|
|
11
11
|
import appmap
|
|
12
|
-
from _appmap.env import Env
|
|
13
12
|
from _appmap.event import _EventIds
|
|
14
13
|
|
|
15
14
|
|
|
@@ -84,8 +83,8 @@ class TestEvents:
|
|
|
84
83
|
actual_value = r.events[0].parameters[0]["value"]
|
|
85
84
|
assert re.fullmatch(expected_re, actual_value)
|
|
86
85
|
|
|
86
|
+
@pytest.mark.appmap_enabled(env={"APPMAP_DISPLAY_PARAMS": "false"})
|
|
87
87
|
def test_when_display_disabled(self, mocker):
|
|
88
|
-
Env.current.set("APPMAP_DISPLAY_PARAMS", "false")
|
|
89
88
|
r = appmap.Recording()
|
|
90
89
|
with r:
|
|
91
90
|
from example_class import ExampleClass # pylint: disable=import-outside-toplevel
|
|
@@ -11,8 +11,11 @@ _enabled = os.environ.get("APPMAP", None)
|
|
|
11
11
|
_recording_exported = False
|
|
12
12
|
if _enabled is None or _enabled.upper() == "TRUE":
|
|
13
13
|
if _enabled is not None:
|
|
14
|
-
# Use setdefault so tests can manage
|
|
14
|
+
# Use setdefault so tests can manage settings as necessary
|
|
15
15
|
os.environ.setdefault("_APPMAP", _enabled)
|
|
16
|
+
_display_params = os.environ.get("APPMAP_DISPLAY_PARAMS", "false")
|
|
17
|
+
os.environ.setdefault("_APPMAP_DISPLAY_PARAMS", _display_params)
|
|
18
|
+
|
|
16
19
|
from _appmap import generation # noqa: F401
|
|
17
20
|
from _appmap.env import Env # noqa: F401
|
|
18
21
|
from _appmap.importer import instrument_module # noqa: F401
|
|
@@ -52,8 +55,10 @@ if _enabled is None or _enabled.upper() == "TRUE":
|
|
|
52
55
|
return Env.current.enabled
|
|
53
56
|
else:
|
|
54
57
|
os.environ.pop("_APPMAP", None)
|
|
58
|
+
os.environ.pop("_APPMAP_DISPLAY_PARAMS", None)
|
|
55
59
|
else:
|
|
56
60
|
os.environ.setdefault("_APPMAP", "false")
|
|
61
|
+
os.environ.setdefault("_APPMAP_DISPLAY_PARAMS", "false")
|
|
57
62
|
|
|
58
63
|
if not _recording_exported:
|
|
59
64
|
# Client code that imports appmap.Recording should run correctly
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/config-exclude/node_modules/node_mod/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/status_errored.metadata.json
RENAMED
|
File without changes
|
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/pytest/expected/status_xfailed.metadata.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/trial/expected/pytest-no-test-cases.appmap.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_errored.metadata.json
RENAMED
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_failed.metadata.json
RENAMED
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_xfailed.metadata.json
RENAMED
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/status_xsucceeded.metadata.json
RENAMED
|
File without changes
|
{appmap-2.1.6 → appmap-2.1.8}/_appmap/test/data/unittest/expected/unittest-no-test-cases.appmap.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|