tonybaloney / wily Goto Github PK
View Code? Open in Web Editor NEWA Python application for tracking, reporting on timing and complexity in Python code
License: Apache License 2.0
A Python application for tracking, reporting on timing and complexity in Python code
License: Apache License 2.0
Hi,
I wanted to use wily as an external tool in Pycharm, in order to see the wily diff of a file.
wily.exe diff foobar.py
However this fails and I get this message:
... File "c:\programdata\anaconda3\envs\foobar\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-123: character maps to <undefined>
Same happens in the cmd when I wants to pipe the output to a file.
wily.exe diff foobar.py > wilydiff.txt
The output options are not valid for the diffs.
Any idea? Thanks
If a radon harvestor fails to run on a revision or file, it simply puts the value 'error' for the dictionary.
Internally to radon, the
Wily should
This issue should contain
See #36 for example
Can we Add the ability to Ignore directories or Virtual environments? My run of wily is getting errors due to files archived by my virtaul env.
in the form {module-#} - {ref}
add the module # to the docstring at the top of each module.
Consider the complexity of the command suite and potentially refactor them.
--help
command should show wily.__version__
in heading.
Also a --version
/-V
flag should be available in the CLI
Run each operator in a seperate thread to speed up the build times
Because of the dynamic cache folders, the pre-commit hook will execute from a different directory and not detect the cache folder of the root path
➜ notations git:(master) ✗ git commit -m "add while test"
wily.....................................................................Failed
hookid: wily
Using default metrics []
Traceback (most recent call last):
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/bin/wily", line 11, in <module>
sys.exit(cli())
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/wily/__main__.py", line 202, in diff
config=config, files=files, metrics=metrics, changes_only=not all, detail=detail
File "/Users/anthonyshaw/.cache/pre-commit/repo9vvhlva6/py_env-python3.6/lib/python3.6/site-packages/wily/commands/diff.py", line 35, in diff
raise RuntimeError("Missing index, run `wily build`.")
RuntimeError: Missing index, run `wily build`.
Change .wily
to fall back to putting the cache in the $HOME path if .gitignore is not configured
Will have to sub-directory for each project or using a unique id
Hi,
I want to use the wily in jenkins pipeline to check the cyclometic complexity , halstead complexity. if it is more than certain value, it should not proceed further but the wily graph or report shows the output alone either in html or tabular. how to use wily in pipeline job
build
commandwily version 1.12.1, installed via pip in a clean venv with python 3.6.7 on ubuntu.
I am trying to run wily build
on a project of mine. Unfortunately I cannot make it work. It finds an "invalid character" but there is none. See screenshot of relevant code piece below. Even deleting the file from the repo does not help because of course it is still in the git history (and I am not going to soft-reset through 30 commits to get wily to work).
Even if there were an invalid character, couldn't there be a way to more gracefully handle this and simply exclude that file from the index/reporting?
Key error:
Failed to run CC harvester on dashtry.py : invalid character in identifier (<unknown>, line 29)
Following stack:
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/pool.py", line 119, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.6/multiprocessing/pool.py", line 47, in starmapstar
return list(itertools.starmap(args[0], args[1]))
File "/Data/Code/projects/finance_data/.venv/lib/python3.6/site-packages/wily/commands/build.py", line 24, in run_operator
return operator.name, instance.run(revision, config)
File "/Data/Code/projects/finance_data/.venv/lib/python3.6/site-packages/wily/operators/halstead.py", line 81, in run
results[filename] = self._report_to_dict(instance)
File "/Data/Code/projects/finance_data/.venv/lib/python3.6/site-packages/wily/operators/halstead.py", line 86, in _report_to_dict
"h1": report.h1,
AttributeError: 'str' object has no attribute 'h1'
"""
Running wily subsequently on a subdirectory leads to this, so apparently wily leaves "corrupted" files behind when exiting in the above fashion:
output of pip freeze:
attrs==19.1.0
certifi==2019.3.9
chardet==3.0.4
Click==7.0
colorama==0.4.1
colorlog==4.0.2
dataclasses==0.6
decorator==4.3.2
entrypoints==0.3
flake8==3.7.7
flake8-polyfill==1.0.2
gitdb2==2.0.5
GitPython==2.1.11
idna==2.8
ipython-genutils==0.2.0
jsonschema==3.0.1
jupyter-core==4.4.0
mando==0.6.4
mccabe==0.6.1
nbformat==4.4.0
pkg-resources==0.0.0
plotly==3.7.0
progress==1.5
pycodestyle==2.5.0
pyflakes==2.1.1
pyrsistent==0.14.11
pytz==2018.9
radon==3.0.1
requests==2.21.0
retrying==1.3.3
six==1.12.0
smmap2==2.0.5
tabulate==0.8.3
traitlets==4.3.2
urllib3==1.24.1
wily==1.12.1
Provide an option for the wily report
command to output in HTML.
I'm a fan of the --cov-report=html option in pytest-cov
Build a command which can list files, methods or functions in order of any of the metrics, e.g. complexity.
Useful for reducing complexity.
I did a:
wily build -n 2000
to produce metrics over the last 2000 commits. That finished quickly, but of course then any report showed no data as I failed to specify the directory to analyze.
It took me a bit to figure that out (I assumed that since it coincided with using the -n param that I had stumbled across a bug). I think it'd be better if wily spat out a warning or an error if one leaves off the target(s) to analyze. Something like:
$ wily build
WARNING: no target(s) specified, do you want to do "wily build somepath/"?
Found 150 revisions from 'git' archiver in '/path/to/your/repo'.
Running operators - raw,maintainability,cyclomatic
Processing |# | 10/450
hi, could you advise how to speed up the build command? I tried to run it inside of pipeline, and it takes ~15 min. And is there any way to pass a lot of arguments to the report command as implemented for diff? because my diff command doesnt work
When showing graphs, Wily crashes in my local setup because my $BROWSER
environment variable is actually a command (program-name --option1 --option2
etc) and not an executable available in $PATH. Setting $BROWSER
to just the binary name did make the graph show up.
rm -rf /Users/bgabor8/.wily/* -rf && wily --debug build virtualenv.py 1>out.log 2>&1
Could not locate wily.cfg, using default config.
Fixing path to /Users/bgabor8/git/github/virtualenv
Loaded configuration from wily.cfg
Fixing archiver to git
Fixing targets to ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',)
Using git archiver module
Initialised state indexes for archivers ['git']
Generating cache for /Users/bgabor8/git/github/virtualenv
Cache path is /Users/bgabor8/.wily/a5f5d5cc0
Wily cache not found, creating.
Creating wily cache /Users/bgabor8/.wily/a5f5d5cc0
Created wily cache
Found 50 revisions from 'git' archiver in '/Users/bgabor8/git/github/virtualenv'.
Running operators - raw,halstead,maintainability,cyclomatic
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Running raw operator on ba9e73bd853722df58e9361c956962dc8e1d013d
Running raw harvester
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsRunning halstead operator on ba9e73bd853722df58e9361c956962dc8e1d013d
Running halstead harvester
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running maintainability operator on ba9e73bd853722df58e9361c956962dc8e1d013d
Running cyclomatic operator on ba9e73bd853722df58e9361c956962dc8e1d013d
Running CC harvester
Running maintainability harvester
Creating wily cache
Creating ba9e73bd853722df58e9361c956962dc8e1d013d output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning raw operator on f0ce306920ba48248b31da46281758ebb9459d59
Running raw harvester
Running halstead operator on f0ce306920ba48248b31da46281758ebb9459d59Running maintainability operator on f0ce306920ba48248b31da46281758ebb9459d59
Running cyclomatic operator on f0ce306920ba48248b31da46281758ebb9459d59
Running CC harvesterRunning maintainability harvester
Running halstead harvester
Creating f0ce306920ba48248b31da46281758ebb9459d59 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning raw operator on 81904e40071667157b97e16e2b8a844027e23d86
Running halstead operator on 81904e40071667157b97e16e2b8a844027e23d86Running maintainability operator on 81904e40071667157b97e16e2b8a844027e23d86
Running raw harvester
Running cyclomatic operator on 81904e40071667157b97e16e2b8a844027e23d86Running halstead harvesterRunning maintainability harvester
Running CC harvester
Creating 81904e40071667157b97e16e2b8a844027e23d86 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 5e3a70c365f62cfb0f39dc4851d2104efc76c02f
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 5e3a70c365f62cfb0f39dc4851d2104efc76c02f
Running raw harvesterRunning maintainability operator on 5e3a70c365f62cfb0f39dc4851d2104efc76c02f
Running halstead harvesterRunning cyclomatic operator on 5e3a70c365f62cfb0f39dc4851d2104efc76c02f
Running maintainability harvester
Running CC harvester
Creating 5e3a70c365f62cfb0f39dc4851d2104efc76c02f output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 27a3171855aa575ef150056f821a7e17a23a27d2Running halstead operator on 27a3171855aa575ef150056f821a7e17a23a27d2
Running maintainability operator on 27a3171855aa575ef150056f821a7e17a23a27d2
Running cyclomatic operator on 27a3171855aa575ef150056f821a7e17a23a27d2
Running raw harvester
Running halstead harvester
Running maintainability harvesterRunning CC harvester
Creating 27a3171855aa575ef150056f821a7e17a23a27d2 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on 1affb904514e5c95ea5279e60d0c2c3e721f4b79
Running raw operator on 1affb904514e5c95ea5279e60d0c2c3e721f4b79
Running halstead harvesterRunning maintainability operator on 1affb904514e5c95ea5279e60d0c2c3e721f4b79
Running cyclomatic operator on 1affb904514e5c95ea5279e60d0c2c3e721f4b79
Running raw harvester
Running maintainability harvester
Running CC harvester
Creating 1affb904514e5c95ea5279e60d0c2c3e721f4b79 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning raw operator on 05933ddb31ee10f490366fc331675f54d0c3028e
Running maintainability operator on 05933ddb31ee10f490366fc331675f54d0c3028eRunning halstead operator on 05933ddb31ee10f490366fc331675f54d0c3028e
Running raw harvester
Running cyclomatic operator on 05933ddb31ee10f490366fc331675f54d0c3028e
Running halstead harvester
Running maintainability harvester
Running CC harvester
Creating 05933ddb31ee10f490366fc331675f54d0c3028e output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on debbaa4ff2712167006f21d978267968c2191d2bUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on debbaa4ff2712167006f21d978267968c2191d2b
Running maintainability operator on debbaa4ff2712167006f21d978267968c2191d2b
Running raw harvester
Running halstead harvesterRunning cyclomatic operator on debbaa4ff2712167006f21d978267968c2191d2b
Running maintainability harvester
Running CC harvester
Creating debbaa4ff2712167006f21d978267968c2191d2b output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on f9d0048ffb3c1e5063fc152c7402635c98081ef9Running raw operator on f9d0048ffb3c1e5063fc152c7402635c98081ef9Running maintainability operator on f9d0048ffb3c1e5063fc152c7402635c98081ef9
Running cyclomatic operator on f9d0048ffb3c1e5063fc152c7402635c98081ef9
Running halstead harvesterRunning raw harvester
Running CC harvester
Running maintainability harvester
Creating f9d0048ffb3c1e5063fc152c7402635c98081ef9 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsRunning raw operator on dfca5ad67bb99861ae181a0c447b8593e1194718
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning maintainability operator on dfca5ad67bb99861ae181a0c447b8593e1194718
Running raw harvester
Running halstead operator on dfca5ad67bb99861ae181a0c447b8593e1194718
Running maintainability harvester
Running cyclomatic operator on dfca5ad67bb99861ae181a0c447b8593e1194718
Running halstead harvester
Running CC harvester
Creating dfca5ad67bb99861ae181a0c447b8593e1194718 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 133103720f13af8271369bd03821ab559e59819dRunning halstead operator on 133103720f13af8271369bd03821ab559e59819d
Running maintainability operator on 133103720f13af8271369bd03821ab559e59819d
Running cyclomatic operator on 133103720f13af8271369bd03821ab559e59819dRunning raw harvesterRunning halstead harvester
Running maintainability harvester
Running CC harvester
Creating 133103720f13af8271369bd03821ab559e59819d output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running maintainability operator on a0b556b5b83cc47fcf7488854cd15985a09ea94c
Running raw operator on a0b556b5b83cc47fcf7488854cd15985a09ea94c
Running halstead operator on a0b556b5b83cc47fcf7488854cd15985a09ea94c
Running maintainability harvesterRunning cyclomatic operator on a0b556b5b83cc47fcf7488854cd15985a09ea94cRunning raw harvester
Running halstead harvester
Running CC harvester
Creating a0b556b5b83cc47fcf7488854cd15985a09ea94c output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on f53a4eae2c616f72a8be22d483af9302b2b0eb8f
Running maintainability operator on f53a4eae2c616f72a8be22d483af9302b2b0eb8fRunning halstead operator on f53a4eae2c616f72a8be22d483af9302b2b0eb8fRunning cyclomatic operator on f53a4eae2c616f72a8be22d483af9302b2b0eb8f
Running raw harvester
Running maintainability harvester
Running halstead harvesterRunning CC harvester
Creating f53a4eae2c616f72a8be22d483af9302b2b0eb8f output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 1acc56faef82fb03c03c046d0c9cdafa29ab5679
Running halstead operator on 1acc56faef82fb03c03c046d0c9cdafa29ab5679
Running maintainability operator on 1acc56faef82fb03c03c046d0c9cdafa29ab5679Running cyclomatic operator on 1acc56faef82fb03c03c046d0c9cdafa29ab5679
Running raw harvester
Running halstead harvester
Running CC harvesterRunning maintainability harvester
Creating 1acc56faef82fb03c03c046d0c9cdafa29ab5679 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 2c1e45ab8131317780701fadb63e452c62e9a4c0
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw harvester
Running halstead operator on 2c1e45ab8131317780701fadb63e452c62e9a4c0Running maintainability operator on 2c1e45ab8131317780701fadb63e452c62e9a4c0
Running cyclomatic operator on 2c1e45ab8131317780701fadb63e452c62e9a4c0
Running halstead harvester
Running maintainability harvesterRunning CC harvester
Creating 2c1e45ab8131317780701fadb63e452c62e9a4c0 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Running raw operator on 789cad50b73ecf709c9ed7e6ba7c0e708e7737e2Running maintainability operator on 789cad50b73ecf709c9ed7e6ba7c0e708e7737e2
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 789cad50b73ecf709c9ed7e6ba7c0e708e7737e2
Running raw harvesterRunning maintainability harvester
Running halstead harvester
Running cyclomatic operator on 789cad50b73ecf709c9ed7e6ba7c0e708e7737e2
Running CC harvester
Creating 789cad50b73ecf709c9ed7e6ba7c0e708e7737e2 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsRunning maintainability operator on c787671ec455e3212fd78126cea558b318f48806
Running cyclomatic operator on c787671ec455e3212fd78126cea558b318f48806
Running raw operator on c787671ec455e3212fd78126cea558b318f48806
Running CC harvester
Running maintainability harvesterRunning raw harvester
Running halstead operator on c787671ec455e3212fd78126cea558b318f48806
Running halstead harvester
Creating c787671ec455e3212fd78126cea558b318f48806 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 124d0eda3f376e0a34544f0dc07f7b557eb69e34Running maintainability operator on 124d0eda3f376e0a34544f0dc07f7b557eb69e34Running halstead operator on 124d0eda3f376e0a34544f0dc07f7b557eb69e34
Running cyclomatic operator on 124d0eda3f376e0a34544f0dc07f7b557eb69e34
Running raw harvester
Running halstead harvester
Running maintainability harvester
Running CC harvester
Creating 124d0eda3f376e0a34544f0dc07f7b557eb69e34 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 94c6bcb4a3f8d7ff63e2215b18d76514d147a762Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on 94c6bcb4a3f8d7ff63e2215b18d76514d147a762
Running maintainability operator on 94c6bcb4a3f8d7ff63e2215b18d76514d147a762
Running raw harvester
Running halstead harvesterRunning cyclomatic operator on 94c6bcb4a3f8d7ff63e2215b18d76514d147a762Running maintainability harvester
Running CC harvester
Creating 94c6bcb4a3f8d7ff63e2215b18d76514d147a762 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 9025a9a1a736cce76606b0b85f8f8e31335aef9bUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 9025a9a1a736cce76606b0b85f8f8e31335aef9b
Running maintainability operator on 9025a9a1a736cce76606b0b85f8f8e31335aef9b
Running cyclomatic operator on 9025a9a1a736cce76606b0b85f8f8e31335aef9bRunning raw harvester
Running halstead harvesterRunning maintainability harvester
Running CC harvester
Creating 9025a9a1a736cce76606b0b85f8f8e31335aef9b output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 3272f7b50c1bb83caeee3b0597de2ff321244386Running maintainability operator on 3272f7b50c1bb83caeee3b0597de2ff321244386Running halstead operator on 3272f7b50c1bb83caeee3b0597de2ff321244386
Running cyclomatic operator on 3272f7b50c1bb83caeee3b0597de2ff321244386
Running raw harvesterRunning maintainability harvesterRunning halstead harvester
Running CC harvester
Creating 3272f7b50c1bb83caeee3b0597de2ff321244386 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on c37e89bb63a162e6e6d30651448a68c799d75c18Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on c37e89bb63a162e6e6d30651448a68c799d75c18
Running maintainability operator on c37e89bb63a162e6e6d30651448a68c799d75c18
Running raw harvester
Running halstead harvester
Running cyclomatic operator on c37e89bb63a162e6e6d30651448a68c799d75c18Running maintainability harvester
Running CC harvester
Creating c37e89bb63a162e6e6d30651448a68c799d75c18 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning raw operator on 824759c87a7463107214286f73e4cc3a5e4d1c54
Running maintainability operator on 824759c87a7463107214286f73e4cc3a5e4d1c54
Running halstead operator on 824759c87a7463107214286f73e4cc3a5e4d1c54
Running cyclomatic operator on 824759c87a7463107214286f73e4cc3a5e4d1c54Running raw harvesterRunning maintainability harvester
Running halstead harvester
Running CC harvester
Creating 824759c87a7463107214286f73e4cc3a5e4d1c54 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 751f8f92abbaa6c11ee0dbabafe8d3d64b352232
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 751f8f92abbaa6c11ee0dbabafe8d3d64b352232
Running raw harvesterRunning maintainability operator on 751f8f92abbaa6c11ee0dbabafe8d3d64b352232
Running maintainability harvesterRunning halstead harvester
Running cyclomatic operator on 751f8f92abbaa6c11ee0dbabafe8d3d64b352232
Running CC harvester
Creating 751f8f92abbaa6c11ee0dbabafe8d3d64b352232 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 3374b3785f0d5f16c5d0ea74de2435b6f8d0fdbd
Running halstead operator on 3374b3785f0d5f16c5d0ea74de2435b6f8d0fdbd
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning maintainability operator on 3374b3785f0d5f16c5d0ea74de2435b6f8d0fdbd
Running raw harvesterRunning halstead harvester
Running maintainability harvester
Running cyclomatic operator on 3374b3785f0d5f16c5d0ea74de2435b6f8d0fdbd
Running CC harvester
Creating 3374b3785f0d5f16c5d0ea74de2435b6f8d0fdbd output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on bdb1355fe8878c86db3a6b0dad9735a276ed497c
Running raw operator on bdb1355fe8878c86db3a6b0dad9735a276ed497c
Running cyclomatic operator on bdb1355fe8878c86db3a6b0dad9735a276ed497cRunning halstead harvesterRunning maintainability operator on bdb1355fe8878c86db3a6b0dad9735a276ed497c
Running raw harvester
Running CC harvester
Running maintainability harvester
Creating bdb1355fe8878c86db3a6b0dad9735a276ed497c output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on bc1d76dadbc716951cb62c378331bc98ff96fd5eUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on bc1d76dadbc716951cb62c378331bc98ff96fd5eRunning maintainability operator on bc1d76dadbc716951cb62c378331bc98ff96fd5e
Running raw harvester
Running cyclomatic operator on bc1d76dadbc716951cb62c378331bc98ff96fd5e
Running halstead harvester
Running maintainability harvesterRunning CC harvester
Creating bc1d76dadbc716951cb62c378331bc98ff96fd5e output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running maintainability operator on 2c482c82ffc2abbb9903b21829c25d4db25800ed
Running halstead operator on 2c482c82ffc2abbb9903b21829c25d4db25800edRunning raw operator on 2c482c82ffc2abbb9903b21829c25d4db25800edRunning cyclomatic operator on 2c482c82ffc2abbb9903b21829c25d4db25800ed
Running maintainability harvester
Running raw harvester
Running halstead harvester
Running CC harvester
Creating 2c482c82ffc2abbb9903b21829c25d4db25800ed output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsRunning raw operator on 585b2250032d417dfbc3bd07cb7b55c33220da3b
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 585b2250032d417dfbc3bd07cb7b55c33220da3b
Running raw harvesterRunning maintainability operator on 585b2250032d417dfbc3bd07cb7b55c33220da3b
Running halstead harvester
Running cyclomatic operator on 585b2250032d417dfbc3bd07cb7b55c33220da3b
Running maintainability harvester
Running CC harvester
Creating 585b2250032d417dfbc3bd07cb7b55c33220da3b output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 117f6f7f5b0ec2d188ee46708a2587533d055582
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 117f6f7f5b0ec2d188ee46708a2587533d055582
Running maintainability operator on 117f6f7f5b0ec2d188ee46708a2587533d055582Running raw harvester
Running halstead harvester
Running maintainability harvester
Running cyclomatic operator on 117f6f7f5b0ec2d188ee46708a2587533d055582
Running CC harvester
Creating 117f6f7f5b0ec2d188ee46708a2587533d055582 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsRunning raw operator on fef732c7be63f11efd52a2e8d94bb1288cb7b9a3
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on fef732c7be63f11efd52a2e8d94bb1288cb7b9a3
Running raw harvester
Running halstead harvesterRunning maintainability operator on fef732c7be63f11efd52a2e8d94bb1288cb7b9a3Running cyclomatic operator on fef732c7be63f11efd52a2e8d94bb1288cb7b9a3
Running CC harvester
Running maintainability harvester
Creating fef732c7be63f11efd52a2e8d94bb1288cb7b9a3 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on c9cf748d904eed9c2383f7ad2371b1e252dce25dUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on c9cf748d904eed9c2383f7ad2371b1e252dce25d
Running maintainability operator on c9cf748d904eed9c2383f7ad2371b1e252dce25d
Running raw harvesterRunning cyclomatic operator on c9cf748d904eed9c2383f7ad2371b1e252dce25dRunning maintainability harvester
Running halstead harvester
Running CC harvester
Creating c9cf748d904eed9c2383f7ad2371b1e252dce25d output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 6d750168a539f4cc54d5d36eb51c7d4a233ac6c2
Running halstead operator on 6d750168a539f4cc54d5d36eb51c7d4a233ac6c2
Running raw harvester
Running maintainability operator on 6d750168a539f4cc54d5d36eb51c7d4a233ac6c2Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead harvester
Running maintainability harvester
Running cyclomatic operator on 6d750168a539f4cc54d5d36eb51c7d4a233ac6c2
Running CC harvester
Creating 6d750168a539f4cc54d5d36eb51c7d4a233ac6c2 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 76326e09dff061096048af9e13a6023d5c3dfda6
Running halstead operator on 76326e09dff061096048af9e13a6023d5c3dfda6
Running maintainability operator on 76326e09dff061096048af9e13a6023d5c3dfda6Running raw harvester
Running halstead harvester
Running maintainability harvester
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running cyclomatic operator on 76326e09dff061096048af9e13a6023d5c3dfda6
Running CC harvester
Creating 76326e09dff061096048af9e13a6023d5c3dfda6 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 54963327e9ad9c0f9a44d480d7fd13f6e48e922e
Running raw harvesterUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on 54963327e9ad9c0f9a44d480d7fd13f6e48e922eRunning maintainability operator on 54963327e9ad9c0f9a44d480d7fd13f6e48e922e
Running cyclomatic operator on 54963327e9ad9c0f9a44d480d7fd13f6e48e922e
Running maintainability harvesterRunning halstead harvester
Running CC harvester
Creating 54963327e9ad9c0f9a44d480d7fd13f6e48e922e output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsRunning raw operator on 3aab5f37536fe8121b67601e594db90009405fd6Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on 3aab5f37536fe8121b67601e594db90009405fd6
Running maintainability operator on 3aab5f37536fe8121b67601e594db90009405fd6
Running raw harvesterRunning cyclomatic operator on 3aab5f37536fe8121b67601e594db90009405fd6Running halstead harvester
Running maintainability harvester
Running CC harvester
Creating 3aab5f37536fe8121b67601e594db90009405fd6 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 162751bcb06612cc833eda90511fec7570c8f0e7Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on 162751bcb06612cc833eda90511fec7570c8f0e7
Running maintainability operator on 162751bcb06612cc833eda90511fec7570c8f0e7
Running raw harvester
Running cyclomatic operator on 162751bcb06612cc833eda90511fec7570c8f0e7Running halstead harvesterRunning maintainability harvester
Running CC harvester
Creating 162751bcb06612cc833eda90511fec7570c8f0e7 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on d53a3c480cd05c98a601a05fccf9106108e54fafRunning halstead operator on d53a3c480cd05c98a601a05fccf9106108e54faf
Running maintainability operator on d53a3c480cd05c98a601a05fccf9106108e54faf
Running cyclomatic operator on d53a3c480cd05c98a601a05fccf9106108e54faf
Running raw harvesterRunning halstead harvester
Running maintainability harvester
Running CC harvester
Creating d53a3c480cd05c98a601a05fccf9106108e54faf output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 23e7f7a628b6a3801ee4764ed6ffc7e71ff038bd
Running halstead operator on 23e7f7a628b6a3801ee4764ed6ffc7e71ff038bdUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running maintainability operator on 23e7f7a628b6a3801ee4764ed6ffc7e71ff038bdRunning raw harvester
Running halstead harvester
Running maintainability harvesterRunning cyclomatic operator on 23e7f7a628b6a3801ee4764ed6ffc7e71ff038bd
Running CC harvester
Creating 23e7f7a628b6a3801ee4764ed6ffc7e71ff038bd output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on c8623258a5ba6990e6b656dcff16718c4a53e9a8
Running raw operator on c8623258a5ba6990e6b656dcff16718c4a53e9a8Running cyclomatic operator on c8623258a5ba6990e6b656dcff16718c4a53e9a8
Running maintainability operator on c8623258a5ba6990e6b656dcff16718c4a53e9a8Running halstead harvester
Running CC harvesterRunning raw harvester
Running maintainability harvester
Creating c8623258a5ba6990e6b656dcff16718c4a53e9a8 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on bcce79d2e827c32153a1a199ddbb99f289f7694dUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on bcce79d2e827c32153a1a199ddbb99f289f7694d
Running maintainability operator on bcce79d2e827c32153a1a199ddbb99f289f7694dRunning raw harvester
Running cyclomatic operator on bcce79d2e827c32153a1a199ddbb99f289f7694d
Running halstead harvester
Running CC harvester
Running maintainability harvester
Creating bcce79d2e827c32153a1a199ddbb99f289f7694d output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsRunning raw operator on f244b8234362cdcedd34cfd6098fff8c89d27082
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on f244b8234362cdcedd34cfd6098fff8c89d27082
Running raw harvesterRunning maintainability operator on f244b8234362cdcedd34cfd6098fff8c89d27082
Running halstead harvesterRunning cyclomatic operator on f244b8234362cdcedd34cfd6098fff8c89d27082
Running maintainability harvester
Running CC harvester
Creating f244b8234362cdcedd34cfd6098fff8c89d27082 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Running raw operator on 591282f224d5d128f4452a319e0ed9a3bcb058c1Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning halstead operator on 591282f224d5d128f4452a319e0ed9a3bcb058c1
Running raw harvester
Running halstead harvesterRunning cyclomatic operator on 591282f224d5d128f4452a319e0ed9a3bcb058c1Running maintainability operator on 591282f224d5d128f4452a319e0ed9a3bcb058c1
Running CC harvester
Running maintainability harvester
Creating 591282f224d5d128f4452a319e0ed9a3bcb058c1 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on cfd9c816bfaa22db1410ca9ec2223982daf94a42
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on cfd9c816bfaa22db1410ca9ec2223982daf94a42
Running raw harvester
Running maintainability operator on cfd9c816bfaa22db1410ca9ec2223982daf94a42
Running cyclomatic operator on cfd9c816bfaa22db1410ca9ec2223982daf94a42Running halstead harvesterRunning maintainability harvester
Running CC harvester
Creating cfd9c816bfaa22db1410ca9ec2223982daf94a42 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 35323557108bd12bf701372fbefafb3200f9ba84
Running halstead operator on 35323557108bd12bf701372fbefafb3200f9ba84Running cyclomatic operator on 35323557108bd12bf701372fbefafb3200f9ba84
Running maintainability operator on 35323557108bd12bf701372fbefafb3200f9ba84Running raw harvester
Running halstead harvester
Running maintainability harvester
Running CC harvester
Creating 35323557108bd12bf701372fbefafb3200f9ba84 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running raw operator on 8fe90535c988d2f1c92ee01000a39d2f592d300e
Running halstead operator on 8fe90535c988d2f1c92ee01000a39d2f592d300eRunning maintainability operator on 8fe90535c988d2f1c92ee01000a39d2f592d300e
Running raw harvesterRunning cyclomatic operator on 8fe90535c988d2f1c92ee01000a39d2f592d300e
Running halstead harvesterRunning maintainability harvester
Running CC harvester
Creating 8fe90535c988d2f1c92ee01000a39d2f592d300e output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metricsRunning raw operator on 4729b198fbc98653918cdd3c6a642e5477728865Running maintainability operator on 4729b198fbc98653918cdd3c6a642e5477728865
Running halstead operator on 4729b198fbc98653918cdd3c6a642e5477728865
Running maintainability harvesterRunning cyclomatic operator on 4729b198fbc98653918cdd3c6a642e5477728865Running raw harvesterRunning halstead harvester
Running CC harvester
Creating 4729b198fbc98653918cdd3c6a642e5477728865 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on a393048d3fe094b9d8501b8974d70c2c74d19614
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running halstead operator on a393048d3fe094b9d8501b8974d70c2c74d19614
Running maintainability operator on a393048d3fe094b9d8501b8974d70c2c74d19614
Running raw harvester
Running halstead harvester
Running maintainability harvesterRunning cyclomatic operator on a393048d3fe094b9d8501b8974d70c2c74d19614
Running CC harvester
Creating a393048d3fe094b9d8501b8974d70c2c74d19614 output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Running raw operator on d683eaeb97895d90ba685dc2708774082d0e0e3f
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running maintainability operator on d683eaeb97895d90ba685dc2708774082d0e0e3f
Running raw harvesterRunning halstead operator on d683eaeb97895d90ba685dc2708774082d0e0e3fRunning cyclomatic operator on d683eaeb97895d90ba685dc2708774082d0e0e3f
Running maintainability harvester
Running halstead harvester
Running CC harvester
Creating d683eaeb97895d90ba685dc2708774082d0e0e3f output
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'summary': False} for Raw metricsUsing ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False, 'by_function': True} for HC metrics
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'C', 'multi': True, 'show': False, 'sort': False} for MI metrics
Running raw operator on 685b1af0405e0c94411951389310960ff7ac8e1eRunning halstead operator on 685b1af0405e0c94411951389310960ff7ac8e1e
Running maintainability operator on 685b1af0405e0c94411951389310960ff7ac8e1e
Running raw harvester
Using ('/Users/bgabor8/git/github/virtualenv/virtualenv.py',) with {'exclude': None, 'ignore': None, 'min': 'A', 'max': 'F', 'no_assert': True, 'show_closures': False, 'order': <function <lambda> at 0x1067d8d90>} for CC metrics
Running maintainability harvester
Running halstead harvester
Running cyclomatic operator on 685b1af0405e0c94411951389310960ff7ac8e1e
Running CC harvester
Creating 685b1af0405e0c94411951389310960ff7ac8e1e output
Saving data
Created index output
Completed building wily history, run `wily report <file>` or `wily index` to see more.
Could not locate wily.cfg, using default config.
Fixing path to /Users/bgabor8/git/github/virtualenv
Loaded configuration from wily.cfg
Generating cache for /Users/bgabor8/git/github/virtualenv
Cache path is /Users/bgabor8/.wily/a5f5d5cc0
Running report on virtualenv.py for metric ('mi',)
Output format is CONSOLE
Running report command
-----------History for ('mi',)------------
Initialised state indexes for archivers ['git']
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
Fetching metric mi for maintainability in virtualenv.py
Fetching metric virtualenv.py - mi for operator maintainability
╒════════════╤═════════════════╤════════════╤═════════════════════════╕
│ Revision │ Author │ Date │ Maintainability Index │
╞════════════╪═════════════════╪════════════╪═════════════════════════╡
│ ba9e73b │ Bernat Gabor │ 2019-05-06 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ f0ce306 │ Bernát Gábor │ 2019-05-05 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 81904e4 │ Bernat Gabor │ 2019-05-05 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 5e3a70c │ Bernát Gábor │ 2019-04-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 27a3171 │ Matt Cooper │ 2019-04-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 1affb90 │ Matt Cooper │ 2019-04-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 05933dd │ Matt Cooper │ 2019-04-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ debbaa4 │ Bernat Gabor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ f9d0048 │ Bernát Gábor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ dfca5ad │ Bernát Gábor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 1331037 │ Bernát Gábor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ a0b556b │ Bernat Gabor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ f53a4ea │ Bernát Gábor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 1acc56f │ Bernát Gábor │ 2019-04-24 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 2c1e45a │ Paul Moore │ 2019-04-23 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 789cad5 │ Brian Skinn │ 2019-04-11 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ c787671 │ Brian Skinn │ 2019-04-10 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 124d0ed │ Tithen-Firion │ 2019-04-01 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 94c6bcb │ Bernát Gábor │ 2019-03-01 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 9025a9a │ Bernát Gábor │ 2019-03-01 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 3272f7b │ Bernat Gabor │ 2019-02-28 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ c37e89b │ Bernát Gábor │ 2019-02-28 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 824759c │ Bernát Gábor │ 2019-02-28 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 751f8f9 │ Aditya Bose │ 2019-02-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 3374b37 │ Bernát Gábor │ 2019-02-23 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ bdb1355 │ Bernát Gábor │ 2019-02-22 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ bc1d76d │ Bernat Gabor │ 2019-02-22 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 2c482c8 │ Bernát Gábor │ 2019-02-22 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 585b225 │ Anthony Sottile │ 2019-02-18 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 117f6f7 │ Anthony Sottile │ 2019-02-18 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ fef732c │ Bernat Gabor │ 2019-02-09 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ c9cf748 │ Bernat Gabor │ 2019-02-09 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 6d75016 │ Bernát Gábor │ 2019-02-09 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 76326e0 │ Bernat Gabor │ 2019-02-09 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 5496332 │ rofl0r │ 2019-02-09 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 3aab5f3 │ Bernát Gábor │ 2019-02-09 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 162751b │ Bernát Gábor │ 2019-02-01 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ d53a3c4 │ daa │ 2019-01-31 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 23e7f7a │ daa │ 2019-01-30 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ c862325 │ Anthony Sottile │ 2019-01-30 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ bcce79d │ Anthony Sottile │ 2019-01-29 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ f244b82 │ Bernát Gábor │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 591282f │ Bernat Gabor │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ cfd9c81 │ Anthony Sottile │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 3532355 │ Bernat Gabor │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 8fe9053 │ Anthony Sottile │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 4729b19 │ Bernát Gábor │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ a393048 │ daa │ 2019-01-25 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ d683eae │ Anthony Sottile │ 2019-01-15 │ 0 (0) │
├────────────┼─────────────────┼────────────┼─────────────────────────┤
│ 685b1af │ Bernat Gabor │ 2019-01-15 │ 0 (0) │
╘════════════╧═════════════════╧════════════╧═════════════════════════╛
Ensure that the following halstead metrics can be captured:
This would require a new operator, radon can already capture all of these metrics (it uses some to calculate maintainability index).
Don't think this should be a default operator.
Steps to reproduce:
wily build <target>
for default operatorswily build -o <operator> <target>
for other operatorWill say no changes, if you change files, will add operator data but only for the last commit.
Does that make sense? It doesn't tell the user whether this will erase the old metrics, or make them defunct. You can't "add" metrics to an existing wily cache by re-running build as the diff uses the git sha, not the operators contained within it.
Instead, when running build it should compare the operator(s) specified and compare it with those in the index to give the user an option of building those metrics in the older revisions
When running wily report
and wily graph
you provide the metrics,
resolve_metric
expects <module>.<metric>
e.g. raw.sloc
.
However, there is only 1 sloc
metric, as with the others. It would be better if resolve_metric
were modified to figure out the metric without a module
I've run wily on a project here at work, and while a wily report ....
works for every file I try, any time I do a wily graph ...
with any file I get:
Traceback (most recent call last):
File "/Users/pzelnip/.virtualenvs/myproj/bin/wily", line 11, in <module>
sys.exit(cli())
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/click/core.py", line 716, in __call__
return self.main(*args, **kwargs)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/click/core.py", line 696, in main
rv = self.invoke(ctx)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/click/core.py", line 1060, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/click/core.py", line 889, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/click/core.py", line 534, in invoke
return callback(*args, **kwargs)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/wily/__main__.py", line 224, in graph
graph(config=config, paths=[files], metrics=metrics, output=output)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/wily/commands/graph.py", line 92, in graph
filename=filename,
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/plotly/offline/offline.py", line 618, in plot
'100%', '100%', global_requirejs=False)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/plotly/offline/offline.py", line 244, in _plot_html
figure = tools.return_figure_from_figure_or_data(figure_or_data, validate)
File "/Users/pzelnip/.virtualenvs/myproj/lib/python3.6/site-packages/plotly/tools.py", line 1521, in return_figure_from_figure_or_data
"Empty data list found. Make sure that you populated the "
plotly.exceptions.PlotlyEmptyDataError: Empty data list found. Make sure that you populated the list of data objects you're sending and try again.
Questions? Visit support.plot.ly
Is there an extra setup step to getting graph to work? All I've done is the pip install wily
since that's all that's mentioned in the docs
In case it matters:
Python 3.6.2
OS: OSX 10.12.6 (Sierra)
wily==1.4.0
Example wily.cfg file:
[wily]
max_revisions = 100
path = ./tests,config.py,./load
Run:
wily build
Expected behavior:
Generates wily cache. Existing code in the WilyConfig
class has support for defaulting the targets to the passed path.
Actual behavior:
Prints help message because targets
are missing.
Possible Solution:
Remove required=True
from the click option, set config.targets
only if targets are passed, and do a check that config.targets
are defined before running build
.
The git archiver will stop if “.wily/“ is not in .gitignore. This is very specific, there could be other ways to specify the folder, eg
.wily
I am getting Halstead harvester EOL while scanning string literal and unknown syntax errors when doing wily build . on code that runs as expected and passes both black and flake8 tests. Is this a know issue? Some lines that are sighted do not even have string literals on them or near them.
Both Poetry and Pipenv allow for a python equivalent of a Ruby/NPM lock file.
Using one of these tools to generate a lockfile for wily should make it easier for contributors to reproduce the same development environment and have a better awareness of the projects' dependency tree.
I'm more familiar with Pipenv than Poetry but one benefit of Poetry is that it already works nicely with pyproject.toml
and the so the Lockfile would be the only new file that would need to be tracked.
With Pipenv we would need a Pipfile
and Pipfiel.lock
and the Pipfile would duplicate what's in the requires section of the pyproject.toml
Requirement to :
Not working with jupyter notebooks. Because of the underlying notebooks JSON code, does this make it too difficult to capture metrics?
There is a guard against .wily/ cache not being in .gitignore, but the exception isn't caught so raises a stack trace
When running the initial set-up for a relatively new repo (just 5 commits), I get the following error below (note that my repo does have a .gitignore
file).
It appears that line 355 in wily/__main__.py
calls a functions with skip_gitignore_check=False
, but that argument is not recognized within the context.
File "/usr/local/miniconda/envs/my_org/bin/wily", line 11, in <module>
sys.exit(cli())
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/wily/__main__.py", line 334, in setup
handle_no_cache(ctx)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/wily/__main__.py", line 355, in handle_no_cache
skip_gitignore_check=False,
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/miniconda/envs/my_org/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
TypeError: build() got an unexpected keyword argument 'skip_gitignore_check'```
not 100% but AFAIK .idea
, .vscode
et al. typically in .gitignore
project looks cool!
This is a really awesome tool! Thanks!
I found a bug playing around...
To reproduce this bug:
$ wily build name_of_folder -n 15 -o raw
(which will add on 5 more rows to the table but only loc)$ wily report name_of_folder
Not found 'cyclomatic'
Not found 'maintainability'
and Not found 'halstead'
(as expected)$ wily build name_of_folder -n 15 -o raw,maintainability
which does nothing or$ wily build name_of_folder -n 20 -o raw,maintainability
which correctly populates the next 5 rows of the table but does not identify the fact that there are missing values in previous rows that also need to be filled...Seeing as though this script takes quite a while to run, I think it would be optimal if it behaved in a way such that it would recognise missing data and fill in the blanks before proceeding with new rows. What do you think?
Or am I not entering commands correctly?
The maintainability.rank metric uses statistics.mode()
as the aggregate function. Mode is really fragile to error when it can't determine the modal value (e.g. more than 1).
This isn't a criticism so please don't take it as such. I am also using Azure pipelines on an open source project and looking to send coverage results to codecover.io, which requires the use of an upload token. I was looking around to see how people were doing this and stumbled across your azure-pipelines.yml file and noticed that you have your token inside of the file but in plain text. I considered doing this but realized that now anybody could push coverage results.
Can you tell me if this is a safe approach or is there something that I'm overlooking?
Ensure wily test coverage works on Windows environments
If you're working on a Windows OS and wily is cloned to a different partition, the test test_store_twice
failes.
OS: Windows 10 Version 1803 (Build 17134.471)
Commit: 7ba461c
Python: 3.6.8rc1
wily path: P:\Python\wily
Python path: C:\Program Files\Python36\python3.6.exe
Error:
______________________________ test_store_twice _______________________________
tmpdir = local('C:\\Users\\Florian\\AppData\\Local\\Temp\\pytest-of-unknown\\pytest-3\\test_store_twice0')
def test_store_twice(tmpdir):
""" Test that you can't write the same revision twice """
config = DEFAULT_CONFIG
cache_path = pathlib.Path(tmpdir) / ".wily"
cache_path.mkdir()
config.cache_path = cache_path
target_path = str(pathlib.Path(tmpdir) / "foo" / "bar.py")
_TEST_STATS = {"operator_data": {"test": {target_path: {"metric1": 1}}}}
_TEST_REVISION = Revision(
key="12345",
author_name="Anthony Shaw",
author_email="[email protected]",
date="17/01/1990",
message="my changes",
)
fn = cache.store(config, ARCHIVER_GIT, _TEST_REVISION, _TEST_STATS)
with pytest.raises(RuntimeError):
> cache.store(config, ARCHIVER_GIT, _TEST_REVISION, _TEST_STATS)
test\unit\test_cache.py:135:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wily\cache.py:129: in store
new_key = os.path.relpath(str(k), str(config.path))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
path = '..\\test_store_twice0\\foo\\bar.py'
start = 'C:\\Users\\Florian\\AppData\\Local\\Temp\\pytest-of-unknown\\pytest-3\\test_git_revisions0'
def relpath(path, start=None):
"""Return a relative version of a path"""
path = os.fspath(path)
if isinstance(path, bytes):
sep = b'\\'
curdir = b'.'
pardir = b'..'
else:
sep = '\\'
curdir = '.'
pardir = '..'
if start is None:
start = curdir
if not path:
raise ValueError("no path specified")
start = os.fspath(start)
try:
start_abs = abspath(normpath(start))
path_abs = abspath(normpath(path))
start_drive, start_rest = splitdrive(start_abs)
path_drive, path_rest = splitdrive(path_abs)
if normcase(start_drive) != normcase(path_drive):
raise ValueError("path is on mount %r, start on mount %r" % (
> path_drive, start_drive))
E ValueError: path is on mount 'P:', start on mount 'C:'
.tox\py36\lib\ntpath.py:584: ValueError```
Update the build process to create a HTML output with a copy of the source code and inline highlighting of metrics along with an index
Consider moving the --metric option from the [OPTIONS] part of the wily report [OPTIONS] FILE to be after the required FILE parameter. From my initial experience, this would make the order in which the metric is specified consistent with the wily graph flow (e.g., wily graph [OPTIONS] FILES METRICS).
The cyclomatic data is not file-level like the maintainability and raw metrics. It is a tree of the entities within that module. Eg.:
"operator_data": {
"cyclomatic": {
"test/unit/test_config.py": [
[
"test_config_empty_defaults",
5,
0,
5,
false,
null,
[],
2
],
[
"test_config_archiver",
22,
0,
22,
false,
null,
[],
2
],
[
"test_config_operators",
41,
0,
41,
false,
null,
[],
2
],
[
"test_config_archiver",
60,
0,
60,
false,
null,
[],
2
]
],
The API (the report, graph and diff commands) only support file-attributes and don't have a way to specify a function, class etc within a module.
module:class:function
Each of these should be broken up into seperate PRs IMO.
Giving an invalid path to wily build
should throw an error or warning. Currently it builds anyway (with nothing inside)
Add ability to specify a path in wily graph
, which will recursively add all the Python files in the current path.
e.g. wily graph src/ raw.loc
, wily graph src/tests/ cyclomatic.complexity raw.loc
Must work with --path
as well
I tried to use the config file from the docs, but it did not work. The config file expects a [wily]
header but one is not present in the example file.
Hi,
I pip installed wily on a python2. And pip allowed me to do that. But it shouldn't work given that you use f-strings. I think it is possible to indicate a minimal python version (3.6?) on pipy.
Perhaps this isn't an issue against the code base, but as I can't think of a better place to report it, I'll do it here.
Bert
Reporting will fail to find files as the reported file will be an absolute path in the cache data, for the current path (default), it will use a relative path.
Suggest using os.path.relpath('/var/foo/bar', '/var/foo')
to fix for alternative targets.
Found 50 revisions from 'git' archiver in '/mnt/d/Projects/bliss_deployment/work/zope/checkout/bliss.git'.
Running operators - raw,cyclomatic,maintainability
Failed to build cache: ''
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/pool.py", line 119, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.6/multiprocessing/pool.py", line 47, in starmapstar
return list(itertools.starmap(args[0], args[1]))
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/wily/commands/build.py", line 24, in run_operator
return operator.name, instance.run(revision, config)
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/wily/operators/cyclomatic.py", line 81, in run
raise TypeError
TypeError
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/mnt/d/Projects/envs/wily/bin/wily", line 11, in <module>
sys.exit(cli())
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/wily/__main__.py", line 123, in build
operators=resolve_operators(config.operators),
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/wily/commands/build.py", line 125, in build
raise e
File "/mnt/d/Projects/envs/wily/lib/python3.6/site-packages/wily/commands/build.py", line 84, in build
[(operator, revision, config) for operator in operators],
File "/usr/lib/python3.6/multiprocessing/pool.py", line 296, in starmap
return self._map_async(func, iterable, starmapstar, chunksize).get()
File "/usr/lib/python3.6/multiprocessing/pool.py", line 670, in get
raise self._value
TypeError```
I attempted to run wily build nengo/
on the master branch of https://github.com/nengo/nengo and I get the following error:
~/C/nengo (nengo) wily build nengo/ (master)
Found 50 revisions from 'git' archiver in '/home/tbekolay/Code/nengo'.
Running operators - maintainability,halstead,cyclomatic,raw
Processing | | 1/200Failed to build cache: 'unsupported operand type(s) for +: 'int' and 'dict''
Traceback (most recent call last):
File "/home/tbekolay/.virtualenvs/nengo/bin/wily", line 10, in <module>
sys.exit(cli())
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/wily/__main__.py", line 132, in build
operators=resolve_operators(config.operators),
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/wily/commands/build.py", line 127, in build
raise e
File "/home/tbekolay/.virtualenvs/nengo/lib/python3.7/site-packages/wily/commands/build.py", line 116, in build
result[str(root)][metric.name] = func(values)
TypeError: unsupported operand type(s) for +: 'int' and 'dict'
This is a little puzzling since the line that it's pointing to doesn't contain an addition statement, as far as I can tell.
This was run in a Python 3.7 virtual environment with wily version 1.12.2. Let me know if I can provide any more information to help with debugging.
In the same way report supports multiple metrics, the graph command should also support multiple metrics, and/or files
I would seperate this into metrics (first) then files. Metrics could adopt the default metrics function that report uses.
This project uses black, but that's not a requirement to execute it. It also uses f-strings, but those could be replaced with str.format easily
Please 👍 if you want to see this back-ported to 3.5
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.