beat.cmdline issueshttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues2020-08-10T15:27:01Zhttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/75docker experiment runs not tested properly.2020-08-10T15:27:01ZAmir MOHAMMADIdocker experiment runs not tested properly.There are several issues when you run the experiments with the docker executor:
* [x] `db.examples` docker image is not publicly available
* [ ] indexing of databases (`view.index` method) runs outside docker (different `root_folder` ...There are several issues when you run the experiments with the docker executor:
* [x] `db.examples` docker image is not publicly available
* [ ] indexing of databases (`view.index` method) runs outside docker (different `root_folder` compared to inside docker containers) and this leads to broken paths when `.get` of views is called inside docker.
* [ ] logging leads to stat errors:
```
% beat experiment run --docker jmcgrat3/jmcgrat3/livdet-baseline/1/livdet-baseline
Index for database livdet-iris-2020/1 not found, building it
Registered 'LivDet2020 (1.0.0)' -> 'livdet2020:latest'
Untagged image, skipping
Registered 'Python (2.1.0)' -> 'beatenv/beat.env.python:2.1.0r7'
Registered 'Python (1.0.0)' -> 'beatenv/beat.env.python:latest'
Registered 'OpenCV (1.0.0)' -> 'opencv:latest'
Registered 'C++ (2.0.0)' -> 'beatenv/beat.env.cxx:2.0.0r3'
Running `jmcgrat3/BSIF-Feature-Extraction/1' for block `s17b12'
Start the execution of 'jmcgrat3/BSIF-Feature-Extraction/1'
Traceback (most recent call last):
File "/Users/josephmcgrath/miniconda3/envs/beat/bin/beat", line 11, in <module>
sys.exit(main())
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/beat/cmdline/decorators.py", line 94, in _decorator
value = view_func(*args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/beat/cmdline/experiments.py", line 782, in run
return run_experiment(config, name, force, docker, local, environment, quiet)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/beat/cmdline/experiments.py", line 312, in run_experiment
simplify_time(data_stats["time"]["read"]),
KeyError: 'time'
```Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/74Pushin an existing experiment leads to a 'description' KeyError2020-07-22T13:23:47ZAmir MOHAMMADIPushin an existing experiment leads to a 'description' KeyError```
pushing experiments/amohammadi/amohammadi/livdet/1/livdet [ModificationStatus.DOC_CHANGED]
Traceback (most recent call last):
File "bin/beat", line 11, in <module>
sys.exit(main())
File "lib/python3.7/site-packages/click/core...```
pushing experiments/amohammadi/amohammadi/livdet/1/livdet [ModificationStatus.DOC_CHANGED]
Traceback (most recent call last):
File "bin/beat", line 11, in <module>
sys.exit(main())
File "lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "lib/python3.7/site-packages/beat/cmdline/click_helper.py", line 121, in invoke
return super().invoke(ctx)
File "lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "lib/python3.7/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "lib/python3.7/site-packages/beat/cmdline/decorators.py", line 94, in _decorator
value = view_func(*args, **kwargs)
File "lib/python3.7/site-packages/beat/cmdline/commands.py", line 321, in push_impl
indentation=0,
File "lib/python3.7/site-packages/beat/cmdline/common.py", line 1497, in push
data = {"description": message["description"]}
KeyError: 'description'
```
I am not sure what is the desired behavior here because the experiment already exists and is run.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/72Local support for splittable2020-08-06T14:39:48ZSamuel GAISTLocal support for splittableCurrently there's no possibility to validate a splittable algorithm locally.
There's nothing in the experiment execution part and in the algorithm execution the number of slots is locked to one and not even used.
The splitting part is ...Currently there's no possibility to validate a splittable algorithm locally.
There's nothing in the experiment execution part and in the algorithm execution the number of slots is locked to one and not even used.
The splitting part is currently done at the beat/beat.web> level and then the scheduler takes the generated tasks and sends them to the appropriate worker machines.
That part shall be ported to beat/beat.cmdline> so that the behaviour can be mimicked locally through maybe multiprocessing.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/69Cannot create a new database2020-06-02T14:14:34ZAmir MOHAMMADICannot create a new databaseRunning `beat databases create myiris/1` will result in:
```
Traceback (most recent call last):
File "/home/amir/miniconda/envs/beat-tutorial/bin/beat", line 11, in <module>
sys.exit(main())
File "/home/amir/miniconda/envs/beat-t...Running `beat databases create myiris/1` will result in:
```
Traceback (most recent call last):
File "/home/amir/miniconda/envs/beat-tutorial/bin/beat", line 11, in <module>
sys.exit(main())
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/cmdline/click_helper.py", line 121, in invoke
return super().invoke(ctx)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/cmdline/decorators.py", line 92, in _decorator
value = view_func(*args, **kwargs)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/cmdline/commands.py", line 162, in create_impl
return common.create(config.path, asset_info.asset_type, names)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/cmdline/common.py", line 1009, in create
obj = TYPE_VALIDATOR[asset_type](prefix, data=None) # the default object
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/core/database.py", line 131, in __init__
super(Database, self).__init__(prefix, data, dataformat_cache)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/backend/python/database.py", line 264, in __init__
self._load(name, dataformat_cache)
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/core/database.py", line 167, in _load
self.prefix
File "/home/amir/miniconda/envs/beat-tutorial/lib/python3.7/site-packages/beat/core/database.py", line 69, in get_first_procotol_template
raise RuntimeError("Invalid prefix content, no protocol template available")
RuntimeError: Invalid prefix content, no protocol template available
```Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/68beat exp fork command is cumbersome to use2020-05-15T12:56:46ZAmir MOHAMMADIbeat exp fork command is cumbersome to useWhen you fork an experiment in the command line, you have to something like:
```sh
$ beat exp fork test/test/iris/1/iris amir/test/iris/1/means
```
but you can only change the username and name of the experiment when you fork.
When usin...When you fork an experiment in the command line, you have to something like:
```sh
$ beat exp fork test/test/iris/1/iris amir/test/iris/1/means
```
but you can only change the username and name of the experiment when you fork.
When using beat.editor 2.0.0, when I fork an experiment, it only asks for the exp name.
Beat.editor somehow decided to put the forked experiment under user `amir` but I don't know
yet how it decided on that.
Shouldn't this command be also similar?
Something like:
```sh
$ beat exp fork test/test/iris/1/iris means
$ beat exp fork --user amir test/test/iris/1/iris means
```https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/60Add support for protocol template2019-05-08T09:45:49ZSamuel GAISTAdd support for protocol templateFor database v2, the new protocol template object has been created (see beat/beat.core#64, beat/beat.core!67, and beat/beat.core!71).
This issue tracks adding support for it in beat/beat.cmdline>
Todo:
- [x] Local support
- [ ] Remote ...For database v2, the new protocol template object has been created (see beat/beat.core#64, beat/beat.core!67, and beat/beat.core!71).
This issue tracks adding support for it in beat/beat.cmdline>
Todo:
- [x] Local support
- [ ] Remote supportSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/56There is no way to make a clean prefix directory structure with only trusted ...2018-12-21T14:52:06ZZohreh MOSTAANIThere is no way to make a clean prefix directory structure with only trusted system files.In the ALLIES meeting one of the points that was raised was that how to get a clean prefix directory structure, with databases, dataformats, etc in place. With only data from the system not other users, and not to go through copying a pr...In the ALLIES meeting one of the points that was raised was that how to get a clean prefix directory structure, with databases, dataformats, etc in place. With only data from the system not other users, and not to go through copying a prefix from another git repository.
It may be possible to use command line to make such a directory.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/51The connections are not pushed to the platform when pushing a toolchain.2018-12-04T15:35:40ZZohreh MOSTAANIThe connections are not pushed to the platform when pushing a toolchain.I pushed a toolchain to the platform with this command:
```
beat toolchains push zmostaani/sbhatta-iqm-face-antispoofing-test/2
```
This is the output:
```
toolchains push zmostaani/sbhatta-iqm-face-antispoofing-test/2
[+] toolchains/tut...I pushed a toolchain to the platform with this command:
```
beat toolchains push zmostaani/sbhatta-iqm-face-antispoofing-test/2
```
This is the output:
```
toolchains push zmostaani/sbhatta-iqm-face-antispoofing-test/2
[+] toolchains/tutorial/eigenface/1 (@2014-08-11T14:27:37)
[l] toolchains/test/iris_advanced_editor/1
[l] toolchains/zmostaani/eigenface-new-error/2
[l] toolchains/tutorial/eigenface-error/1
[l] toolchains/zmostaani/editor-test/1
[l] toolchains/zmostaani/editor-test-2/1
[l] toolchains/zmostaani/eigenface-clone/1
[l] toolchains/zmostaani/eigenface-test/1
[l] toolchains/test/test/1
[l] toolchains/zmostaani/eigenface-new/1
[l] toolchains/zmostaani/sbhatta-iqm-face-antispoofing-test/1
[l] toolchains/test/iris/1
[l] toolchains/zmostaani/sbhatta-iqm-face-antispoofing-test/2
[l] toolchains/test/iris_advanced/1
[l] toolchains/zmostaani/eigenface-new-error/1
pushing toolchains/zmostaani/sbhatta-iqm-face-antispoofing-test/2 [l]
Successfuly created `zmostaani/sbhatta-iqm-face-antispoofing-test/2'
```
I went to check it on the platform. Aside from the problem with version numbering that has been mentioned in issue #49 and #50, when I look at it on the platform there is no connection to any block.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/46plot function does not work properly if the prefix is set with relative path.2018-09-06T14:46:40ZZohreh MOSTAANIplot function does not work properly if the prefix is set with relative path.Hi,
I set my prefix to a relative path by using `beat config set` command. I can run the experiment but When I try to plot the result I get this error, it looks in the wrong directory.
```
retrieving `plotters/plotterparameters/plot/is...Hi,
I set my prefix to a relative path by using `beat config set` command. I can run the experiment but When I try to plot the result I get this error, it looks in the wrong directory.
```
retrieving `plotters/plotterparameters/plot/isoroc/1'...
Traceback (most recent call last):
File "/home/zmostaani/miniconda3/envs/beat_mini/bin/beat", line 11, in <module>
sys.exit(main())
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/beat/cmdline/decorators.py", line 75, in _decorator
value = view_func(*args, **kwargs)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/beat/cmdline/experiments.py", line 783, in plot
output_folder
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/beat/cmdline/experiments.py", line 535, in plot_impl
data.as_dict()[the_data], output_name, None, indentation + 2, format_cache)
File "/home/zmostaani/miniconda3/envs/beat_mini/lib/python3.6/site-packages/beat/cmdline/plotters.py", line 238, in plot_impl
with open(output_name, "wb") as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'beat.zmostaani.prefix/prefix/beat.zmostaani.prefix/prefix/experiments/zmostaani/tutorial/eigenface/1/atnt-eigenfaces-75-comp-bis-vbox_roc.png'
```
in this example the my prefix value is `"prefix": "beat.zmostaani.prefix/prefix"` and I am running the experiment on the parent folder of beat.zmostaani.prefix.
I tried with different relative paths and I get the similar error, however if I use the absolute path everything is ok.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/53strange behaviour of beat.cmline when pulling objects from platform results i...2018-12-06T09:53:24ZZohreh MOSTAANIstrange behaviour of beat.cmline when pulling objects from platform results in beat.editor crashing as well.Hi,
Today when I ran beateditor command to edit some experiment, it did not show me anything on the Firefox. It only shows the page for split second and then it is a blank page. I updated beat.editor with conda in case there were some c...Hi,
Today when I ran beateditor command to edit some experiment, it did not show me anything on the Firefox. It only shows the page for split second and then it is a blank page. I updated beat.editor with conda in case there were some changes but the problem is still there.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/39Better copy/paste support for `exp caches`2018-06-11T08:13:15ZJaden DIEFENBAUGHBetter copy/paste support for `exp caches`Right now the caches printed are file paths:
```
block: `pre_training'
algorithm: `test/iris_preprocessor/1'
output: `/home/jae/code/beat.editor/prefix/cache/a9/e2/0b/2ba5928422351e52a508bd0cbc55e3d0e5bacb05896dc28413bcd0a1a4'
block:...Right now the caches printed are file paths:
```
block: `pre_training'
algorithm: `test/iris_preprocessor/1'
output: `/home/jae/code/beat.editor/prefix/cache/a9/e2/0b/2ba5928422351e52a508bd0cbc55e3d0e5bacb05896dc28413bcd0a1a4'
block: `pre_testing'
algorithm: `test/iris_preprocessor/1'
output: `/home/jae/code/beat.editor/prefix/cache/1e/a5/74/80c7d48bae3d0f6baf0883c3a7f78b5324830931029fcee4fd3bffff4d'
block: `training_alg'
algorithm: `test/iris_training/1'
output: `/home/jae/code/beat.editor/prefix/cache/45/61/15/3438e272598bf15e6bd729709536f4ca38b2b9d1061dd286c6dae5f288'
block: `testing_alg'
algorithm: `test/iris_testing/1'
output: `/home/jae/code/beat.editor/prefix/cache/39/d4/20/a6709aca3cac7e9a9a7cb2c36d536184554b5e19358927f2e866ad5751'
block: `analyzer'
analyzer: `test/iris_analyzer/1'
output: `/home/jae/code/beat.editor/prefix/cache/f0/a0/86/a645856dcbee4edc2729fcc60554212ed5def33334670602be6086aafb'
```
But you only use path segments relative to the cache folder to operate on that cache:
```
$ beat ca view a9/e2/0b/2ba5928422351e52a508bd0cbc55e3d0e5bacb05896dc28413bcd0a1a4
```
It would make sense for `exp caches` to only print out this bit, not the absolute path.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/37`exp caches --list` doesn't print out db caches2018-05-30T15:22:15ZJaden DIEFENBAUGH`exp caches --list` doesn't print out db cachesWhen printing caches for an experiment, it prints out all blocks' caches except the dataset blocks' caches.When printing caches for an experiment, it prints out all blocks' caches except the dataset blocks' caches.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/36Add `--long` flag when listing things2018-05-30T08:28:19ZJaden DIEFENBAUGHAdd `--long` flag when listing thingsIt's just like `ls`'s `-l` flag:
- last edited
- maybe which filetypes the object has associated with it?It's just like `ls`'s `-l` flag:
- last edited
- maybe which filetypes the object has associated with it?https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/35Add sort option for `beat <subcommand> list`2018-05-30T08:24:38ZJaden DIEFENBAUGHAdd sort option for `beat <subcommand> list`Sort by:
- Name
- Last edited
- ???Sort by:
- Name
- Last edited
- ???https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/27[all packages] code cleanup2018-09-04T09:09:56ZFlavio TARSETTI[all packages] code cleanupbeat.cmdline needs to get some things changed such as:
- type keyword to remove
- status = None returned (to return a real status)beat.cmdline needs to get some things changed such as:
- type keyword to remove
- status = None returned (to return a real status)https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/23[cache] experiments data does not contain all information such as "type" field2018-05-01T09:09:50ZFlavio TARSETTI[cache] experiments data does not contain all information such as "type" fieldWhen the experiments is run locally,
We have a major issue.
Why aren't the information saved the same way as in the API?
One of the most important information is missing in the cache.
I was expecting this as in the API:
"results...When the experiments is run locally,
We have a major issue.
Why aren't the information saved the same way as in the API?
One of the most important information is missing in the cache.
I was expecting this as in the API:
"results": {
"analysis": {
"bar_plot": {
"type": "plot/bar/1",
"primary": false,
"value": {
"data": [
{
"y": [
0.0,
1.0,
2.0,
But I was able to get only this from the local cache:
"bar_plot": {
"data": [
{
"y": [
0.0,
1.0,
2.0,
3.0,
Where is the "type" field gone?
The type field is important as it indicates which plotter can handle this kind of data.
At present, I am working on plotting using data I get remotely from the experiment when hitting the API, but someone would want to be able to use experiments data he has ran locally and this is not possible at the moment due to the "cache" missing information. This is blocking for local plotting from locally ran experiments.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/18Autocompletion of BEAT objects in prefix & commands2018-03-23T08:38:40ZJaden DIEFENBAUGHAutocompletion of BEAT objects in prefix & commandsThis would improve productivity SO MUCH. I almost think this is a required feature for the June 2018 deliverable. We'd probably want to pull in a new dependency...maybe even need to rewrite a bunch of the CLI code. But I'm not sure since...This would improve productivity SO MUCH. I almost think this is a required feature for the June 2018 deliverable. We'd probably want to pull in a new dependency...maybe even need to rewrite a bunch of the CLI code. But I'm not sure since I haven't worked much with CLI python.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/17Better cache search/discovery/browsing2018-06-11T07:59:30ZJaden DIEFENBAUGHBetter cache search/discovery/browsingRight now you have to give a path to a `.data` cache file to see anything about the cache. At the very least, I think there should be a cache listing command that gives relevant info about all the existing caches.Right now you have to give a path to a `.data` cache file to see anything about the cache. At the very least, I think there should be a cache listing command that gives relevant info about all the existing caches.https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/14More detailed logging at various verbosity levels2017-08-25T07:36:23ZJaden DIEFENBAUGHMore detailed logging at various verbosity levelsRight now, the various verbosity levels don't provide much more information than not passing a verbosity level at all. Some ideas:
- More cache information
- Logging the block & its cache would be especially useful
- More statistics (...Right now, the various verbosity levels don't provide much more information than not passing a verbosity level at all. Some ideas:
- More cache information
- Logging the block & its cache would be especially useful
- More statistics (especially for the local executor)
- Printing output of every block, not just the analyserhttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/12Add support for multiprocessing & multi environments2017-08-24T09:20:28ZJaden DIEFENBAUGHAdd support for multiprocessing & multi environmentsRe-add/enable support for `describe` from `beat.backend.python` in `beat.cmdline` for non-docker multi-environment support.Re-add/enable support for `describe` from `beat.backend.python` in `beat.cmdline` for non-docker multi-environment support.