Package: appmap
AboutUsageDevelopmentGetting the codePython version supportDependency managementwraptLintingTestingpytesttoxCode CoverageAboutappmap-pythonis a Python package for recordingAppMapsof your code. "AppMap" is a data format
which records code structure (modules, classes, and methods), code execution events
(function calls and returns), and code metadata (repo name, repo URL, commit SHA, labels,
etc). It's more granular than a performance profile, but it's less granular than a full
debug trace. It's designed to be optimal for understanding the design intent and structure
of code and key data flows.UsageVisit theAppMap for Pythonreference page on AppLand.com for a complete reference guide.DevelopmentGetting the codeClone the repo to begin development.%gitclonehttps://github.com/applandinc/appmap-python.git
Cloninginto'appmap-python'...
remote:Enumeratingobjects:167,done.
remote:Countingobjects:100%(167/167),done.
remote:Compressingobjects:100%(100/100),done.
remote:Total962(delta95),reused116(delta61),pack-reused795Receivingobjects:100%(962/962),217.31KiB|4.62MiB/s,done.
Resolvingdeltas:100%(653/653),done.Python version supportAs a package intended to be installed in as many environments as possible,appmap-pythonneeds to avoid using features of Python or the standard library that were added after the
oldest version currently supported (see thesupported versions).Dependency managementpoetryfor dependency management:% brew install poetry
% cd appmap-python
% poetry installwraptThe one dependency that is not managed usingpoetryiswrapt. Because it's possible that
projects that useappmapmay also need an unmodified version ofwrapt(e.g.pylintdepends onastroid, which in turn depends onwrapt), we usevendoringto vendorwrapt.To updatewrapt, usetox(described below) to run thevendoringenvironment.Lintingpylintfor linting:% cd appmap-python
% poetry run pylint appmap

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)[Note that the current configuration has a threshold set which must be met for the Travis build to
pass. To make this easier to achieve, a number of checks have both been disabled. They should be
reenabled as soon as possible.]TestingpytestNote that you must install the dependencies contained inrequirements-test.txtbefore running tests. See the explanation inpyproject.tomlfor details.pytestfor testing:% cd appmap-python
% pip install -r requirements-test.txt
% poetry run pytesttoxAdditionally, thetoxconfiguration provides the ability to run the tests for all
supported versions of Python and Django.toxrequires that all the correct versions of Python to be available to create
the test environments.pyenvis an easy way to manage
multiple versions of Python, and thexxenv-latest
plugincan help get all the latest versions.%brewinstallpyenv
%gitclonehttps://github.com/momo-lab/xxenv-latest.git"$(pyenvroot)"/plugins/xxenv-latest
%cdappmap-python
%pyenvlatestlocal3.{9,6,7,8}%forvin3.{9,6,7,8};dopyenvlatestinstall$v;done%poetryruntoxCode Coveragecoveragefor coverage:% cd appmap-python
% poetry run coverage run -m pytest
% poetry run coverage html
% open htmlcov/index.html