[Channels]Remove check for sender.

Issue: Because of check for sender in channels library, it is impossible to communicate between manager and addons.
Right now it is only possible to communicate between

addons -> provider
provider -> manager.

If you want to communicate between manager and addons, you need to send the message from manager to provider and from provider to addons (and vice versa).
What I am afraid about is that I see that this check was added as a separate commit. Could we try to reach @mnmtanish so he could share his knowledge about why he added it in first place?
Also I would really like to get your opinion about this. I thought about adding this check as an opt-out, but @ndelangen feels like we remove the check completely if possible.
What I did
Removed the sender check.
How to test
We need to check out that all addons still work. I feel like this can break someones usage.

@Gongreg I wonder why do you need to communicate between manager and (panel) addons via the channel? Why you can't use API for that?
I guess we use channel to organize communication with iframe (preview)
Maybe if existing API is not enough we need to add more?

I think this is perfectly understandable.
I'd like the channel to be the event-bus we can just throw events at, and have either side respond.
Sometimes an event is of interest to both the manager and preview.
Having to send an event on 2 different event-busses to get the actions to happen just doesn't make a lot of sense, right?

is it a breaking change?

@UsulPro, that I am not sure about. It can be breaking change for users
who were using same name events between manager <-> provider and provider <-> addons.

I doubt this is a breaking change actually

I guess "writing-addons" guide encourage to use the one channel ID for addons.
At least Material-UI addon use the same ID for sending and for listening.
So if I understand right it will be broken.
Not sure about other addons... Do we know how many people use it the same way?

@UsulPro, do you mean that they use same event name
addon_name/eventName
both for communication between manager addons and manager preview?
I mean for it to happen this way they would have to do two emits with same name in different locations.

Can you please fix the unit test that is failing?

@ndelangen, looks like it is fixed?

@Gongreg do you mind doing a test pass on the addons in cra-kitchen-sink?

Hi @Gongreg
We didn't have any special reasons to add the check. It was just part of the design at that time. If you guys think removing the check (event bus approach) will make things simpler, please go ahead. Just check the code where storybook sends/receives messages a bit.

I did a manual test pass when I approved this @shilman, but I guess example has changed quite a bit, so someone should retest.
Let's get this merged!

Why is this based on 3.3 btw?

@ndelangen , I guess @shilman wants me to finish working on my feature for 3.3. :D


Refs 184: Add ouiaIds to DropdownSelect

Hi
Adding some ouiaIds in DropdownSelect so they propagate to Select
Thank you

https://issues.redhat.com/browse/HMSCONTENT-184

⚠ This task currently requires qe-approval, but this PR does not fully resolve the task.  Please contact QE to determine appropriate testing required.


Removed the description for the fields from video panel

Removed the description for the fields from video panel as the field labels are sufficient. Adding component type name in the description will unnecessary make it longer.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Mukesh Sahay seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


fix: describe how to expose port for playground

Description
Add in details on how to expose port for playground
References
Close https://github.com/openfga/openfga.dev/issues/157
Review Checklist

[ ] I have added documentation for new/changed functionality in this PR or in openfga.dev
[ ] The correct base branch is being used, if not main

Note
Do not merge in until https://github.com/openfga/openfga/issues/102 is complete

@adriantam we also need to index.tsx with the Quick Start command. It should be:
  docker pull openfga/openfga &&
  docker run -p 8080:8080 -p 8081:8081 -p 3000:3000 openfga/openfga run


systematically handling column names and indexes of transformed dataframes

when we transform a dataframe we want to make sure that in the output

the column names are always the same (and unique)
if it is a pandas dataframe, the index is preserved
possibly other checks performed by CheckInputDataframe

see for example this comment
I'm opening this now just so we don't forget about it

Agreed !
It would also be useful to check dataframe types between main and aux. For now, I believe only AggJoiner checks that both have the same type in X, self._aux_table = self._check_dataframes(X, self.aux_table), but we probably want this for the other joiners too.
We could use something like:
self._aux_check_input = CheckInputDataFrame()
self._aux_table = self._aux_check_input.fit_transform(self.aux_table)

self._main_check_input = CheckInputDataFrame()
X = self._main_check_input.fit_transform(X)

if not self._main_check_input.module_name_ != self._aux_check_input.module_name_:
   ...

For now,

the Joiner uses CheckInputDataframe for main and aux, but doesn't check the type.
the InterpolationJoiner doesn't use CheckInputDataframe. Note that here, main might not be known at the time of fitting.


macOS Support Fix/Improvements

This PR includes macOS support fixes/improves:

Fix missing dependencies.
Add a App Bundle build on release (so you can have a icon on dock, just for better look)
Add basic native M1/M2 chip support (missing libworldline, waiting for upstream update)

Why don't you go merge this pull request, it's important for mac users🤔


Support devicon

Devicon has icons for languages and development tools, it would be very useful for the toolbar.

We're open to PR.
Ref: https://github.com/suda/tool-bar/issues/39

I'm using tool-bar 0.1.5 and I can't get any devicons working. Atom 0.205.0. What I'm missing?

@igorprado commented on 4 jun. 2015 16:04 CEST:

I'm using tool-bar 0.1.5 and I can't get any devicons working. Atom 0.205.0. What I'm missing?

What is your code?

Sorry, my bad. The documentation of DevIcon is not that clear.
To make it work, I had to click on the icon (on Devicon's page) and get from the sidebar this:
<!-- in your body -->
<i class="devicon-nodejs-plain"></i>

and use just the nodejs-plain in the flex-tool-bar JSON file...

and use just the nodejs-plain in the flex-tool-bar JSON file...

That's correct. :+1: If you feel our docs are not clear, please send us a PR with a better explanation.


is the plugin need WearOS for work Correctly?

hello,
We have already had a conversation about other issues in the waer plugin repo.
in this case I guess the OS of watch isn't a WearOS.
I got the android version in watch that return Android version 8.1.0.
have can I detect that use WearOS or pure Android?

@Rexios80
Hi,
How can I root the android watch ? Or flash that, then install WearOS or my custom android?
Can you help ?

This plugin allows the use of Wear OS APIs in a Flutter application. If the device does not run Wear OS, then that is out of the support scope for this plugin.

This plugin allows the use of Wear OS APIs in a Flutter application. If the device does not run Wear OS, then that is out of the support scope for this plugin.

Ok. Thanks.
Can you tell me how to root an android smart watch? Or even flash and an operating system WearOS install on it?

No


fix repr attr error

Fix AttributeErrors when calling __repr__

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

16 of 16 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 99.542%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
652

Relevant Lines:
655

💛  - Coveralls


Use worker threads to parse torrents so main thread doesn't get busy

Marked as P0 since this is generating some crashes on first installation.

I can make this :)
This issue was assigned?

Sorry, this one has been closed already.
Feel free to pick something else from the board:
https://github.com/users/hydralauncher/projects/1


Custom icon sites

Could you please add a possibility to add custom icon sites? By adding a specific attribute, for example.

You can add custom icons already by the "icon" attribute.

Ah, you meant the icon sites, add them where all icon sites are. Why you need special attribute for that?

@Purfview to be able to copy-paste them more easily.

How a special attribute is related to that?
You can submit sites to be added.

@Purfview when you add sites to the custom sites section they can only be places to one of searchbars. They can't be added to other icon sites.

Because that place is only for the search sites. Btw, you can fork repository too.


Don't have the ability to set outbox health check properties

Hi
With https://github.com/BEagle1984/silverback/blob/master/src/Silverback.Integration.HealthChecks/Messaging/HealthChecks/OutboxQueueHealthCheck.cs we don't seem to have the ability to set MaxQueueLength or MaxMessageAge.
Are these missing parameters from the AddOutboxCheck method?
Thanks

They are public static variables so we can set them.

Closing because properties are public static


1518 react treeview feedback from screen reader

Describe your changes here.
Closes 1518 as somewhat of a bandaid for the issue. The reason this is happening is from a larger issue with the api. For now, the aria message is now updating the status correctly based on which branch is expanded.
Screenshots
Please provide before/after screenshots for any visual changes
Before:

Directory with async items is expanded, but the status reads that that the last child, Nested Directory is empty. This is both not true, and irrelevant to expanding Directory with async items
After:

Now when Directory with async items is expanded, the status accurately reads that it has loaded.
Merge checklist

[x] Added/updated tests
[ ] Added/updated documentation
[x] Tested in Chrome
[x] Tested in Firefox
[x] Tested in Safari
[ ] Tested in Edge

Take a look at the What we look for in reviews section of the contributing guidelines for more information on how we review PRs.

The reason this is happening is from a larger issue with the API.

Could you expand on this? What do you think the root cause of this issue is?


Added Particles Animation

Description
Sir please give level 2 if you found it suitable because i need to configure the particles.config.js file for matching the theme with your website this took my most of the time .
I've added a particles animation by this user can interact with the particles where the user moves the cursor it will looking like the particles are moving .
closes : #1779
Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Security enhancement
[ ] Other (specify): _______________

Screenshots / Videos (if applicable)
https://github.com/CodeHarborHub/codeharborhub.github.io/assets/118350936/8b9692e2-a95a-41ef-9bce-6081299f6065
Checklist

[x] I have performed a self-review of my code.
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[ ] I have commented my code, particularly in hard-to-understand areas.
[x] I have followed the code style guidelines of this project.
[x] I have checked for any existing open issues that my pull request may address.
[x] I have ensured that my changes do not break any existing functionality.
[x] Each contributor is allowed to create a maximum of 4 issues per day. This helps us manage and address issues efficiently.
[x] I have read the resources for guidance listed below.
[x] I have followed security best practices in my code changes.

Resources for Guidance
Please read the following resources before submitting your contribution:

[x] Code Harbor Hub Community Features
[x] Docusaurus Documentation
[x] React.js Documentation
[x] Markdown Guide
[x] MDX Documentation
[x] Mermaid Documentation

Resources for DSA Features on Our Site:

[x] Tabs: Switch Languages
[x] Line Numbering
[ ] Math Equations

Contribution Guidelines
Thank you for considering contributing to our project! To ensure smooth collaboration and effective contribution management, please adhere to the following guidelines:
Issue Creation

Limit on Issues:

Each contributor is allowed to create a maximum of 4 issues per day. This helps us manage and address issues efficiently.

Contribution Levels

Basic Contributions:

This project is primarily focused on documentation. Most of the setup has been completed, so contributors will generally need to work on basic code tasks, such as writing tests.
For these tasks, issues will be assigned the level1 label.

Acknowledging Hard Work:

If a contributor puts in significant effort on a task, the issue will be upgraded to level2. This is our way of recognizing and appreciating extra effort.

Feature Additions and Component Work:

Contributors working on new features or components using JSX/TSX will be assigned a level based on the complexity and quality of their work.
The more complex and valuable the contribution, the higher the level assigned.

Level Definitions

Level1:

Tasks are straightforward, such as fixing minor bugs, writing tests, or making simple documentation updates.

Level2:

Tasks require more effort, such as addressing complex bugs, improving existing features, or making substantial documentation improvements.

Level3:

Tasks are highly complex and involve significant new feature development, major refactoring, or extensive contributions to the project’s core components.

We look forward to your contributions and appreciate your effort in helping us improve the project!

@Ajay-Dhangar  Thanks sir for merging but if you found it suitable for lvl 2 then please give level 2 otherwise i have no problem

@Ajay-Dhangar  Thanks sir for merging but  this is a fair contribution  for the enhancement of website according to the guidelines i received  so please if you found it suitable for lvl 2 please give because it took much time to configure it according to the theme of website  .


chore: add optional root option for not public fonts

What is changed
Created root option for module and font options. If root option has been declared, it overrides the default Nuxt public path value for searching fonts in project.
Motivation
If a developer wants to avoid using fonts stored in Nuxt's public path, they cannot do it. For example, a developer might want to use assets directory as fonts storage (or some others). assets directory is better when site will use caching tools (like the Cache-Control header) - then assets directory will generate unique filenames.

Would you be able to add a test?

@danielroe , I'm sorry, I don't work very well with tests, but tried to update them to test the new functionality.
Can you check me please?


Update Paho library

I have noticed there is quite a difference between Paho library from eclipse and paho github repo, and the library from github repo is more developed. feature I was trying to find was reconnect that is only implemented on github repo.
I have no major changes in the library that should brake the code.

@alikh31 Thanks for the PR!


Fix ASKEM integration workflow

I'm pretty confident on this one. I'm going to go ahead and merge it.


Fix compatibility of YarpRobotLoggerDevice with new version of matiocpp

cc @prashanthr05

@isorrentino what is the status of this PR?


Vent Pressure Mod

It do not get the value from file. Keep sending gas.

Please, fill the issue, with logs.

VentPressureState.json -> File at \steamapps\common\OxygenNotIncluded\Mods\VentPressure\Config
{
"Enabled": true,
"MaximumPressure": {
    "GasVent": 2500,
    "GasVentHighPressure": 2500
}

}

2500 are 2500kg


Week 6 - Corrections and Create Task

Jekyll Page

Graded by Christina Lee: 4.75/5

Tasks
Checks
Comments

Create Task
:heavy_check_mark:
Create task video is very thorough and displays layers and complicated code. This is seen by how the video is more than 40 seconds. Overall, good job on the creativity and complexity of this creates a task. Before, next time's review on Thursday, I would recommend being more descriptive in the written section because there are some parts that are not clear to me.

Test Corrections Quiz1&2
:heavy_check_mark:
You have a very nice and thorough understanding of your corrected work. I look forward to hearing about your improvements for tomorrow's MCQ as well. Keep up the good work!


Removed check for existence of first submap of first trajectory in pose graph optimization

Removed check for existence of first submap of first trajectory.
This check is equivalent to the original implementation which got changed in #584

@schwoere Seems you first have to resolve a merge conflict.

@wally-the-cartographer merge

Merge requested by authorized user schwoere. Merge queue now has a length of 6.

Merge requested by authorized user schwoere. Merge queue now has a length of 1.


ExpressRoute Gateway Redundancy

This page is about HA for ExpressRoute.
It mentioned that ExpressRoute Circuit is by default redundant with Primary and Secondary circuits. However, it didn't mention whether the "ExpressRoute Gateway" is by default redundant or not.
As compared to the documentation for VPN Gateway (https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-highlyavailable), it clearly pointed out that there are always two instances behind one VPN Gateway by default.
Can you please advise how Azure cater the availability of the ExpressRoute Gateway for regions that only have one AZ? (i.e. Zone-redundant or Zonal ExpressRoute Gateway is not applicable.)
Thanks.
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2b27b9b3-fe7e-1ac3-d07a-3d55ce820e48
Version Independent ID: 9607bff7-4b14-f3ef-6a4d-cf494eb84c07
Content: Azure ExpressRoute: Designing for high availability
Content Source: articles/expressroute/designing-for-high-availability-with-expressroute.md
Service: expressroute
GitHub Login: @rambk
Microsoft Alias: rambala

Hi @hugohhk , thank you for the detailed question. We are currently investigating and will update you when we have accurate information to provide.

@hugohhk Both Azure VPN Gateways and Expressroute Gateways are VMSS with at least 2 instances to handle traffic & maintain high availability. These instances are in different Availability Zones which gives them resiliency to an individual node failure, hardware failure, or an Azure platform update.

@TravisCragg-MSFT Thanks for your reply.

Can you please show me which documentation page has the description of one ER Gateway having 2 instances? I can only find such for the VPN Gateway, but not for the ER Gateway.  Note that I am not referring to the zone-redundant SKUs (ErGwAZ).

What if for some regions where only one Availability Zone exists, would there be still two instances behind one ER Gateway? If yes, how are the two instances of ER Gateway distributed?

If there are two instances behind one ER Gateway, then only one ER Gateway will be charged?

When I create the Standard SKU ER Gateway, no active-active option is available. The active-active option is only available for High Performance or higher SKUs. Do it mean two instances of ER Gateway is NOT available for Standard SKU? See attached screen captures.

I would appreciate it if you can answer all my puzzles which have been in my mind for long. Thanks.

@hugohhk After following up with the ER Gateway team, There is redundancy built into the gateway but we do not publicly state the redundancy of an ER Gateway, and it is NOT a VMSS on the backend.

There is not documentation for ER Gateway redundancy, but a single instance failure on Azure's end should not bring down your gateway.

I unfortunately cannot clarify this point.

the pricing for all Gateways (VPN & ER) is not done by instance count. For ER Gateways, the only price is an hourly charge.

4.. the Standard SKU does not support configuring the active-active option, however there is still redundancy built into the gateway.

@hugohhk We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


fix: spelling "vendEr" -> "vendOr"

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Apparently, "vender" is used very rarely.

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
REASON: Due to a  recent change in the way the curriculum logic, only the text is used instead of the assert message values, so your changes are actually not needed.
Thank you and happy coding.

Ok, np.


docs: make README not as outdated

Summary
This pull request basically makes the README.rst file a bit more updated.

Uses double quotations(quotation marks) instead of single quotations(apostrophes) in the Quick Example
Uses the nextcord vanity URL instead of a custom invite
Uses pypi.org instead of pypi.python.org

Checklist

[ ] If code changes were made then they have been tested.

[ ] I have updated the documentation to reflect the changes.
[ ] I have run task pyright and fixed the relevant issues.

[ ] This PR fixes an issue.
[ ] This PR adds something new (e.g. new method or parameters).
[ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
[x] This PR is not a code change (e.g. documentation, README, ...)

I don't know if these links need to be changed since the existing ones still work.
Also #656 is touching the Quick Example, so it's probably best to avoid modifying it.

I don't know if these links need to be changed since the existing ones still work.

Well, some of the links in the README file do actually use PyPI's new URL, so maybe for consistency, the nextcord URL's could be changed too.

Also #656 is touching the Quick Example, so it's probably best to avoid modifying it.

Fixed


fix issue #1905

Signed-off-by: StephenRi<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
add ut cases.
Ⅱ. Does this pull request fix one issue?

fixes #1905
Ⅲ. Describe how you did it

read source code
figure out the structure of each object
find out all possible conditions
add all cases

Ⅳ. Describe how to verify it
go test ./apis/opts/portbindings.go ./apis/opts/portbindings_test.go -v -cover
Ⅴ. Special notes for reviews
TestParsePortBinding
1. correct case
2. bad case: first if
TestVerifyPortBinding
1. correct case
2. bad case: first if
3. bad case: second if

Codecov Report

Merging #2007 into master will decrease coverage by 3.32%.
The diff coverage is n/a.


e2e tests should run in an arbitrary namespace

While using the operator to install into a namespace other than knative-serving, I discovered a manifestival bug. The bug wasn't revealed until I actually tried to create a Knative Service, so our current e2e tests may need to be enhanced to replicate that, but regardless, I think we should be running our tests inside an arbitrary namespace just to attempt to catch things like this (I believe the conversion webhooks in the CRD are a recent addition).

Both of serving and eventing have the same job named storage-version-migration.
This blocks knative from running under the same namespace.


Naming

Small updates, mainly consistent naming of players

I believe we will need to update the naming inside our benchmarking environment. cc @yanndupis

Is there any difference between this branch and #256  ?

@bendecoste good catch! no difference, but github was acting up earlier today. i've closed the other issue to keep @ianlivingstone's comment alive

A comment should be added to the changelog that we've modified those variables for specifying a node's role!


feature: support for mdx files

Is your feature request related to a problem? Please describe.
plugin doesn's work on mdx files
Describe the solution you'd like
addding support to .mdx files
Describe alternatives you've considered
I tested writing "markdownx" and "mdx" on file_types on the plugin confige but it doesn't work
Additional information
No response

Duplicate of: https://github.com/MeanderingProgrammer/render-markdown.nvim/issues/120
LMK if any of that works for.
MDX as far as I know doesn't have a standard out of the box setup for neovim so how did you get any form of syntax highlighting working?
When you open an mdx file what is the output of this command: :lua vim.print(vim.bo.filetype)?

thanks the plugin work in the mdx files now
about the MDX highlighting It's not working for me either
and the :lua vim.print(vim.bo.filetype) command now output mdx

update: syntax highlighting on mdx files is working for me now I think because of registering mdx on treesitter


Add: remove style

Codecov Report

Merging #55 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #55   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          19     19
  Lines         220    220
=====================================
  Hits          220    220

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2ddcf23...42cc8f5. Read the comment docs.


std/emulated/field_assert.go  IsZero() does not work as expected

std/emulated/field_assert.go  IsZero() does not work as expected
Description
std/emulated/field_assert.go  IsZero() does not work as expected, original code  is below,  res is supposed impacted by all  limbs, but unfortunately, the for loop does not impact res.
func (f *Field[T]) IsZero(a *Element[T]) frontend.Variable {
	ca := f.Reduce(a)
	f.AssertIsInRange(ca)
	res := f.api.IsZero(ca.Limbs[0])
	for i := 1; i < len(ca.Limbs); i++ {
		f.api.Mul(res, f.api.IsZero(ca.Limbs[i]))
	}
	return res
}

Expected Behavior and Actual Behavior
For the below TestZeroCircuit_NonZero,  It should be NonZero, But IsZero() return true
type ZeroCircuit[T FieldParams] struct {
	Var    Element[T]
	IsZero frontend.Variable `gnark:",public"`
}

func (c *ZeroCircuit[T]) Define(api frontend.API) error {
	f, err := NewField[T](api)
	if err != nil {
		return err
	}
	res := f.IsZero(&c.Var)
	f.api.AssertIsEqual(res, c.IsZero)
	return nil
}

func TestZeroCircuit_NonZero(t *testing.T) {
	assert := test.NewAssert(t)
	type T = BLS12381Fp
	var circuit, witness ZeroCircuit[T]
	el := Element[T]{
		Limbs:    []frontend.Variable{0, 1, 0, 1, 0, 1},
		overflow: 0,
		internal: true,
	}
	witness.Var = el
	witness.IsZero = 0

	err := test.IsSolved(&circuit, &witness, testCurve.ScalarField())
	assert.NoError(err)

	_, err = frontend.Compile(testCurve.ScalarField(), r1cs.NewBuilder, &circuit)
	assert.NoError(err)
}

Possible Fix
func (f *Field[T]) IsZero(a *Element[T]) frontend.Variable {
	ca := f.Reduce(a)
	f.AssertIsInRange(ca)
	res := f.api.IsZero(ca.Limbs[0])
	for i := 1; i < len(ca.Limbs); i++ {
		res = f.api.Mul(res, f.api.IsZero(ca.Limbs[i]))
	}
	return res
}

Indeed, you are right. We would be excited to accept your contribution as a PR! Otherwise, I can implement the fix, but this would leave you out of the list of code contributors

Great! I will create a PR to fix this problem soon.

Great! I will create a PR to fix this problem soon.

Perfect! Will be looking forward to it!

@ivokub  It looks like I have no right to push my fix, could you do me a favor to open write permission for me? thanks

@ivokub It looks like I have no right to push my fix, could you do me a favor to open write permission for me? thanks

I see you have solved it by forking and pushing a PR from there. That was actually what I would have proposed - we do not grant direct write access but rather pull the contributions from forks.

Fixed through #1002 1002


The Compiled Package link is broken

It links to https://googledrive.com/host/0Bw4IursaqWhhbDFzUENfSTAwckE/
Is there anywhere I can download the compiled version for Mac?

I have an old copy locally. I'll make it available via dropbox for a few days.
use this link

Any chance of having a compiled version for Windows?


Exception trace from flyer example

received this exception while trying the flyer example:
AttributeError: 'Legend' object has no attribute 'set_draggable'

full trace (822 lines)

congratulations on this most verbose exception trace
In [1]: from ophyd.sim import det, flyer1, flyer2  # simulated hardware

In [2]: from bluesky.preprocessors import fly_during_wrapper

In [3]: RE(fly_during_wrapper(bp.count([det], num=5), [flyer1, flyer2]))
Transient Scan ID: 969     Time: 2019-03-08 15:08:43
Persistent Unique Scan ID: 'd5f875b1-55be-40b0-9f59-08981954f3c0'
New stream: 'primary'
+-----------+------------+
|   seq_num |       time |
+-----------+------------+
|         1 | 15:08:43.5 |
|         2 | 15:08:43.6 |
|         3 | 15:08:43.6 |
|         4 | 15:08:43.6 |
|         5 | 15:08:43.6 |
New stream: 'stream_name'
[E 15:08:44.139 run_engine:1264] Run aborted
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
[E 15:08:44.139 run_engine:1264] Run aborted
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
[E 15:08:44.170 run_engine:1278] Failed to collect <ophyd.sim.MockFlyer object at 0x7f30ea90c518>.
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1265, in _run
        raise err
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1276, in _run
        yield from self._collect(Msg('collect', obj))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
[E 15:08:44.170 run_engine:1278] Failed to collect <ophyd.sim.MockFlyer object at 0x7f30ea90c518>.
    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1265, in _run
        raise err
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1153, in _run
        msg = self._plan_stack[-1].send(resp)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1294, in __call__
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 1147, in baseline_wrapper
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 790, in monitor_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 848, in fly_during_wrapper
        return (yield from plan2)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 169, in plan_mutator
        raise ex
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 122, in plan_mutator
        msg = plan_stack[-1].send(ret)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py", line 67, in count
        return (yield from inner_count())
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 939, in stage_wrapper
        return (yield from finalize_wrapper(inner(), unstage_devices()))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 500, in finalize_wrapper
        ret = yield from plan
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 937, in inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 1011, in dec_inner
        return (yield from plan)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 326, in run_wrapper
        else_plan=close_run)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 576, in contingency_wrapper
        yield from else_plan()
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py", line 733, in close_run
        return (yield Msg('close_run', exit_status=exit_status, reason=reason))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 77, in plan_mutator
        msg = plan_stack[-1].throw(exception)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 839, in new_gen
        yield from ensure_generator(collect_msgs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 115, in <genexpr>
        gen = (msg for msg in gen)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py", line 194, in plan_mutator
        inner_ret = yield msg
      [Previous line repeated 1 more times]
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1211, in _run
        new_response = yield from coro(msg)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1276, in _run
        yield from self._collect(Msg('collect', obj))
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 1886, in _collect
        yield from self.emit(DocumentNames.descriptor, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py", line 212, in coro
        res = func(*args, **kw)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2324, in emit
        self.dispatcher.process(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py", line 2344, in process
        exceptions = self.cb_registry.process(name, name.name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 334, in process
        func(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py", line 415, in __call__
        return mtd(*args, **kwargs)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 93, in __call__
        super().__call__(name, doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py", line 275, in descriptor
        live_plot('start', self._start_doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py", line 17, in __call__
        return getattr(self, name)(doc)
      File "/home/prjemian/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py", line 97, in start
        loc=0, title=self.legend_title).set_draggable(True)
    AttributeError: 'Legend' object has no attribute 'set_draggable'
+-----------+------------+
generator count ['d5f875b1'] (scan num: 969)

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-b4dd05324fd9> in <module>
----> 1 RE(fly_during_wrapper(bp.count([det], num=5), [flyer1, flyer2]))

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in __call__(self, *args, **metadata_kw)
    754                     # it (unless it is a canceled error)
    755                     if exc is not None:
--> 756                         raise exc
    757
    758             if self._interrupted:

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _run(self)
   1263             self._reason = str(err)
   1264             self.log.exception("Run aborted")
-> 1265             raise err
   1266         finally:
   1267             # Some done_callbacks may still be alive in other threads.

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _run(self)
   1151                     else:
   1152                         try:
-> 1153                             msg = self._plan_stack[-1].send(resp)
   1154                         # We have exhausted the top generator
   1155                         except StopIteration:

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in __call__(self, plan)
   1292         plan = monitor_during_wrapper(plan, self.monitors)
   1293         plan = baseline_wrapper(plan, self.baseline)
-> 1294         return (yield from plan)

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in baseline_wrapper(plan, devices, name)
   1145     if not devices:
   1146         # no-op
-> 1147         return (yield from plan)
   1148     else:
   1149         return (yield from plan_mutator(plan, insert_baseline))

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in monitor_during_wrapper(plan, signals)
    788     plan1 = plan_mutator(plan, insert_after_open)
    789     plan2 = plan_mutator(plan1, insert_before_close)
--> 790     return (yield from plan2)
    791
    792

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in fly_during_wrapper(plan, flyers)
    846     plan1 = plan_mutator(plan, insert_after_open)
    847     plan2 = plan_mutator(plan1, insert_before_close)
--> 848     return (yield from plan2)
    849
    850

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in fly_during_wrapper(plan, flyers)
    846     plan1 = plan_mutator(plan, insert_after_open)
    847     plan2 = plan_mutator(plan1, insert_before_close)
--> 848     return (yield from plan2)
    849
    850

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    167                     continue
    168                 else:
--> 169                     raise ex
    170         # if inserting / mutating, put new generator on the stack
    171         # and replace the current msg with the first element from the

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    120             ret = result_stack.pop()
    121             try:
--> 122                 msg = plan_stack[-1].send(ret)
    123             except StopIteration as e:
    124                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plans.py in count(detectors, num, delay, md)
     65                                       num=num, delay=delay))
     66
---> 67     return (yield from inner_count())
     68
     69

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in dec_inner(*inner_args, **inner_kwargs)
   1009                 plan = gen_func(*inner_args, **inner_kwargs)
   1010                 plan = wrapper(plan, *args, **kwargs)
-> 1011                 return (yield from plan)
   1012             return dec_inner
   1013         return dec

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in stage_wrapper(plan, devices)
    937         return (yield from plan)
    938
--> 939     return (yield from finalize_wrapper(inner(), unstage_devices()))
    940
    941

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in finalize_wrapper(plan, final_plan, pause_for_debug)
    498     cleanup = True
    499     try:
--> 500         ret = yield from plan
    501     except GeneratorExit:
    502         cleanup = False

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in inner()
    935     def inner():
    936         yield from stage_devices()
--> 937         return (yield from plan)
    938
    939     return (yield from finalize_wrapper(inner(), unstage_devices()))

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in dec_inner(*inner_args, **inner_kwargs)
   1009                 plan = gen_func(*inner_args, **inner_kwargs)
   1010                 plan = wrapper(plan, *args, **kwargs)
-> 1011                 return (yield from plan)
   1012             return dec_inner
   1013         return dec

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in run_wrapper(plan, md)
    324     yield from contingency_wrapper(plan,
    325                                    except_plan=except_plan,
--> 326                                    else_plan=close_run)
    327     return rs_uid
    328

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in contingency_wrapper(plan, except_plan, else_plan, final_plan, pause_for_debug)
    574     else:
    575         if else_plan:
--> 576             yield from else_plan()
    577     finally:
    578         # if the exception raised in `GeneratorExit` that means

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/plan_stubs.py in close_run(exit_status, reason)
    731     :func:`bluesky.plans_stubs.open_run`
    732     """
--> 733     return (yield Msg('close_run', exit_status=exit_status, reason=reason))
    734
    735

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
     75             # if we have a stashed exception, pass it along
     76             try:
---> 77                 msg = plan_stack[-1].throw(exception)
     78             except StopIteration as e:
     79                 # discard the exhausted generator

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in new_gen()
    837             def new_gen():
    838                 yield from ensure_generator(complete_msgs)
--> 839                 yield from ensure_generator(collect_msgs)
    840                 yield msg
    841             return new_gen(), None

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in <genexpr>(.0)
    113     if not isinstance(gen, PLAN_TYPES):
    114         # If plan does not support .send, we must wrap it in a generator.
--> 115         gen = (msg for msg in gen)
    116
    117     return gen

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/preprocessors.py in plan_mutator(plan, msg_proc)
    192         try:
    193             # yield out the 'current message' and collect the return
--> 194             inner_ret = yield msg
    195         except GeneratorExit:
    196             # special case GeneratorExit.  We must clean up all of our plans

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _run(self)
   1209                         # exceptions (coming in via throw) can be
   1210                         # raised
-> 1211                         new_response = yield from coro(msg)
   1212
   1213                     # special case `CancelledError` and let the outer

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in _collect(self, msg)
   1884                            name=stream_name, hints=hints,
   1885                            object_keys=object_keys)
-> 1886                 yield from self.emit(DocumentNames.descriptor, doc)
   1887                 self.log.debug("Emitted Event Descriptor with name %r "
   1888                                "containing data keys %r (uid=%r)", stream_name,

~/Apps/BlueSky/lib/python3.6/asyncio/coroutines.py in coro(*args, **kw)
    210         @functools.wraps(func)
    211         def coro(*args, **kw):
--> 212             res = func(*args, **kw)
    213             if (base_futures.isfuture(res) or inspect.isgenerator(res) or
    214                 isinstance(res, CoroWrapper)):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in emit(self, name, doc)
   2322         "Process blocking callbacks and schedule non-blocking callbacks."
   2323         _validate(doc, schemas[name])
-> 2324         self.dispatcher.process(name, doc)
   2325
   2326

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/run_engine.py in process(self, name, doc)
   2342         doc : dict
   2343         """
-> 2344         exceptions = self.cb_registry.process(name, name.name, doc)
   2345         for exc, traceback in exceptions:
   2346             warn("A %r was raised during the processing of a %s "

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in process(self, sig, *args, **kwargs)
    332             for cid, func in list(self.callbacks[sig].items()):
    333                 try:
--> 334                     func(*args, **kwargs)
    335                 except ReferenceError:
    336                     self._remove_proxy(func)

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/utils.py in __call__(self, *args, **kwargs)
    413             mtd = self.func
    414         # invoke the callable and return the result
--> 415         return mtd(*args, **kwargs)
    416
    417     def __eq__(self, other):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py in __call__(self, name, doc)
     91             return
     92
---> 93         super().__call__(name, doc)
     94
     95     def start(self, doc):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py in __call__(self, name, doc)
     15     def __call__(self, name, doc):
     16         "Dispatch to methods expecting particular doc types."
---> 17         return getattr(self, name)(doc)
     18
     19     def event(self, doc):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/best_effort.py in descriptor(self, doc)
    273                 live_plot = LivePlotPlusPeaks(y=y_key, x=x_key, ax=ax,
    274                                               peak_results=self.peaks)
--> 275                 live_plot('start', self._start_doc)
    276                 live_plot('descriptor', doc)
    277                 peak_stats = PeakStats(x=x_key, y=y_key)

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/core.py in __call__(self, name, doc)
     15     def __call__(self, name, doc):
     16         "Dispatch to methods expecting particular doc types."
---> 17         return getattr(self, name)(doc)
     18
     19     def event(self, doc):

~/Apps/BlueSky/lib/python3.6/site-packages/bluesky/callbacks/mpl_plotting.py in start(self, doc)
     95         self.lines.append(self.current_line)
     96         self.legend = self.ax.legend(
---> 97             loc=0, title=self.legend_title).set_draggable(True)
     98         super().start(doc)
     99

AttributeError: 'Legend' object has no attribute 'set_draggable'

Expected Behavior
expected a working example of a Flyer
Current Behavior
fails
Possible Solution
example needs to be updated to follow changes in API
Steps to Reproduce (for bugs)

look at the trace

Context
Operate the synApps sscan record as a bluesky/ophyd Flyer
Your Environment

RE.md['BLUESKY_VERSION'] = 1.5.0.post11+g226d74f
RE.md['OPHYD_VERSION'] = 1.3.0.post331+g8671719
linux-x86_64

What version of matplotlib are you running?

In [1]: import matplotlib

In [2]: matplotlib.__version__
Out[2]: '2.0.2'

FYI: It was already reported by @awalter-bnl in https://github.com/NSLS-II/bluesky/pull/1149#issuecomment-467969441.

@tacaswell Would it be reasonable to use try/except to support both old and new versions of matplotlib?

Now that's some detective work.  Seems like a duplicate but this problem was quickly lost in the murky details of the per_step discussion.  Recommend to keep this open as separate issue.

Just tried on a different workstation, also mpl 2.0.2, and same result.  This includes updates to DAMA packages from GH master:
 pip install -U git+https://github.com/NSLS-II/ophyd.git
 pip install -U git+https://github.com/NSLS-II/bluesky.git
 pip install -U git+https://github.com/NSLS-II/databroker.git
 pip install -U git+https://github.com/NSLS-II/event-model.git

not quite my usual practice but wanted to use recent updates in all of that

According to the release notes of Matplotlib, the .draggable() method was deprecated in v3, so @tacaswell proactively changed it to the new version .set_draggable() via https://github.com/NSLS-II/bluesky/commit/1a68537ca6dc9ce5189d91003b732e9a68769465. I am not sure when it was introduced, but I think upgrading @prjemian's Matplotlib installation to v3.0.3 will resolve the issue.

@tacaswell Would it be reasonable to use try/except to support both old and new versions of matplotlib?

@danielballan I did this in #1149 but as @prjemian says it got lost in that discussion.

(bluesky) mintadmin@mint-vm:~/.../use_bluesky/notebooks$ conda list matplotlib
# packages in environment at /home/mintadmin/Apps/anaconda/envs/bluesky:
#
# Name                    Version                   Build  Channel
matplotlib                2.0.2               np112py36_0

(bluesky) mintadmin@mint-vm:~/.../use_bluesky/notebooks$ conda update matplotlib
Collecting package metadata: done
Solving environment: done

# All requested packages already installed.

conda-forge has 3.0.3 yet this does not install it
conda update -c conda-forge matplotlib

next trying conda install matplotlib=3 but suggestions are welcome

https://anaconda.org/search?q=matplotlib

 `conda install matplotlib=3` session

(bluesky) mintadmin@mint-vm:~/.../use_bluesky/notebooks$ conda install matplotlib=3
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/mintadmin/Apps/anaconda/envs/bluesky

  added / updated specs:
    - matplotlib=3

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    kiwisolver-1.0.1           |   py36hf484d3e_0          83 KB
    matplotlib-3.0.0           |   py36h5429711_0         6.8 MB
    pillow-5.4.1               |   py36h34e0f95_0         627 KB
    pyqt-5.9.2                 |   py36h05f1152_2         5.6 MB
    qt-5.9.6                   |       h8703b6f_2        87.1 MB
    sip-4.19.8                 |   py36hf484d3e_0         290 KB
    ------------------------------------------------------------
                                           Total:       100.5 MB

The following NEW packages will be INSTALLED:

  kiwisolver         pkgs/main/linux-64::kiwisolver-1.0.1-py36hf484d3e_0
  libuuid            pkgs/main/linux-64::libuuid-1.0.3-h1bed415_2

The following packages will be REMOVED:

  gobject-introspection-1.51.3-py36_0
  harfbuzz-0.9.39-2
  hkl-<IP_ADDRESS>3-py36_4
  pygobject3-3.18.2-py36_2

The following packages will be UPDATED:

  ca-certificates    conda-forge::ca-certificates-2018.11.~ --> pkgs/main::ca-certificates-2019.1.23-0
  cairo                           pkgs/free::cairo-1.14.8-0 --> pkgs/main::cairo-1.14.12-h8948797_3
  dbus                            pkgs/free::dbus-1.10.20-0 --> pkgs/main::dbus-1.13.2-h714fa37_1
  fontconfig                 pkgs/free::fontconfig-2.12.1-3 --> pkgs/main::fontconfig-2.13.0-h9420a91_0
  freetype                      pkgs/free::freetype-2.5.5-2 --> pkgs/main::freetype-2.9.1-h8a8886c_1
  glib                      lightsource2-tag::glib-2.51.4-0 --> pkgs/main::glib-2.56.2-hd408876_0
  gst-plugins-base      pkgs/free::gst-plugins-base-1.8.0-0 --> pkgs/main::gst-plugins-base-1.14.0-hbbd80ab_1
  gstreamer                    pkgs/free::gstreamer-1.8.0-0 --> pkgs/main::gstreamer-1.14.0-hb453b48_1
  icu                                 pkgs/free::icu-54.1-0 --> pkgs/main::icu-58.2-h9c2bf20_1
  libxml2                        pkgs/free::libxml2-2.9.4-0 --> pkgs/main::libxml2-2.9.9-he19cac6_0
  matplotlib         pkgs/free::matplotlib-2.0.2-np112py36~ --> pkgs/main::matplotlib-3.0.0-py36h5429711_0
  pillow                     pkgs/free::pillow-4.2.1-py36_0 --> pkgs/main::pillow-5.4.1-py36h34e0f95_0
  pyqt               conda-forge::pyqt-5.6.0-py36h13b7fb3_~ --> pkgs/main::pyqt-5.9.2-py36h05f1152_2
  qt                                  pkgs/free::qt-5.6.2-5 --> pkgs/main::qt-5.9.6-h8703b6f_2
  sip                                 4.18.1-py36hf484d3e_2 --> 4.19.8-py36hf484d3e_0
  tk                                       8.6.7-hc745277_3 --> 8.6.8-hbc83047_0

The following packages will be SUPERSEDED by a higher-priority channel:

  certifi            conda-forge::certifi-2018.11.29-py36_~ --> pkgs/main::certifi-2018.11.29-py36_0
  openssl            conda-forge::openssl-1.0.2r-h14c3975_0 --> pkgs/main::openssl-1.0.2r-h7b6447c_0

With MPL 3.0.0 installed, this problem went away (although another problem appeared regarding LivePlot did not get any data ...)
 test with MPL 3.0.0

(bluesky) mintadmin@mint-vm:~/.../use_bluesky/notebooks$ !ipyt
ipython --profile=bluesky
Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

IPython profile: bluesky
/home/mintadmin/.ipython/profile_bluesky/startup/00-0-checks.py
BlueSky version: 1.5.0.post21+g611d570
Ophyd version: 1.3.0.post367+g553e3e0
/home/mintadmin/.ipython/profile_bluesky/startup/00-startup.py
Loading metadata history from /home/mintadmin/.config/bluesky/bluesky_history.db
/home/mintadmin/.ipython/profile_bluesky/startup/01-databroker.py
/home/mintadmin/.ipython/profile_bluesky/startup/02-pyepics.py
/home/mintadmin/.ipython/profile_bluesky/startup/09-imports.py
/home/mintadmin/.ipython/profile_bluesky/startup/10-devices.py
/home/mintadmin/.ipython/profile_bluesky/startup/15-motors.py
/home/mintadmin/.ipython/profile_bluesky/startup/21-signals.py
/home/mintadmin/.ipython/profile_bluesky/startup/25-areadetector.py
Could not connect vm7SIM1: sim detector
/home/mintadmin/.ipython/profile_bluesky/startup/50-plans.py
/home/mintadmin/.ipython/profile_bluesky/startup/60-metadata.py
Metadata dictionary:
RE.md['APSTOOLS_VERSION'] = 2019.0301.0+2.g5e0fdad
RE.md['BLUESKY_VERSION'] = 1.5.0.post21+g611d570
RE.md['OPHYD_VERSION'] = 1.3.0.post367+g553e3e0
RE.md['beamline_id'] = Linux Mint VM7
RE.md['login_id'] = mintadmin@mint-vm
RE.md['pid'] = 6378
RE.md['proposal_id'] = testing
RE.md['scan_id'] = 88
/home/mintadmin/.ipython/profile_bluesky/startup/80-callbacks.py

  writing to SPEC file: /home/mintadmin/Documents/eclipse/use_bluesky/notebooks/20190308-165144.dat
  >>>>   Using default SPEC file name   <<<<
  file will be created when bluesky ends its next scan
  to change SPEC file, use command:   newSpecFile('title')

In [1]: import matplotlib

In [2]: matplotlib.__version__
Out[2]: '3.0.0'

In [3]: from ophyd.sim import det, flyer1, flyer2  # simulated hardware
   ...: from bluesky.plans import count
   ...: from bluesky.preprocessors import fly_during_wrapper
   ...:
   ...:

In [4]: RE(fly_during_wrapper(count([det], num=5), [flyer1, flyer2]))
Transient Scan ID: 89     Time: 2019-03-08 16:52:02
Persistent Unique Scan ID: 'da4cc86f-eff9-4207-8ddf-d526728dbaf2'
New stream: 'primary'
+-----------+------------+
|   seq_num |       time |
+-----------+------------+
|         1 | 16:52:02.3 |
|         2 | 16:52:02.3 |
|         3 | 16:52:02.3 |
|         4 | 16:52:02.3 |
|         5 | 16:52:02.3 |
New stream: 'stream_name'
+-----------+------------+
generator count ['da4cc86f'] (scan num: 89)
LivePlot did not get any data that corresponds to the x axis. time
LivePlot did not get any data that corresponds to the y axis. motor
LivePlot did not get any data that corresponds to the x axis. time
LivePlot did not get any data that corresponds to the y axis. motor_setpoint
LivePlot did not get any data that corresponds to the x axis. time
LivePlot did not get any data that corresponds to the y axis. det

Out[4]: ('da4cc86f-eff9-4207-8ddf-d526728dbaf2',)

In [5]:

That seems to be a different problem with the example.

Everyone agree that imposing a requirement of MPL>=3 would be the fix for this?

I didn't realize that the public anaconda (=defaults) channel does not have mpl 3.0.3 yet. Versions > 3 would be fine.
Regarding the second issue, did you hint your motors/detectors?

Used this content: from ophyd.sim import det, flyer1, flyer2
I believe you have identified the parts that need updating.  The updates will be the education I need.  Just starting to learn kind, hints will be next...

det.kind = 'hinted' (and same for motors) should be sufficient, but I may be wrong. I remember @awalter-bnl bumped into it some time ago.

I think that is a sufficient work-around, but this is a better fix. There is no reason to break support for matplotlib 2.x.
https://github.com/NSLS-II/bluesky/pull/1158

RE(fly_during_wrapper(bp.count([det], num=5), [flyer1, flyer2]))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/workspaces/bluesky/src/bluesky/run_engine.py", line 459, in __init__
    self.md.setdefault("versions", {})
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'generator' object has no attribute 'setdefault'

that is the error I got now.
arguably with     "matplotlib >=3.5.0", now this issue is no longer relevant @danielballan


Address collection validation flow - rework to be 2 step process

Related to #2203. It sucks for the user to have to correct each field individually like this. It might be better to go to more of an e-commerce style flow, where the user is prompted with the address that we've matched in our DB afterwards, and asked if they'd like to update it.
Kind of like a confirmation screen after they've filled out their address... just asking to accept that the address we found (in our format) is correct.
cc @mikefantini

closing, this isn't possible with the UPS api


cannot call non-const fn parking_lot::lock_api::Mutex::<parking_lot::RawMutex, ()>::new in constant functions

I found a use-case for seqlock in my repo where I had a Copy type—yay! I added seqlock, and replaced an RwLock with SeqLock. Unfortunately I hit this build error:
error[E0015]: cannot call non-const fn `parking_lot::lock_api::Mutex::<parking_lot::RawMutex, ()>::new` in constant functions
   --> /home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/seqlock-0.2.0/src/lib.rs:101:20
    |
101 |             mutex: Mutex::new(()),
    |                    ^^^^^^^^^^^^^^
    |
    = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants

I see that older versions of lock-api did not have const on Mutext::new()^1, but now it does. Is there a good fix for this? I see that lock-api has a feature (has_const_fn_trait_bound) that sets the const-ness. Since seqlock does not depend on lock-api directly, but instead through parking_lot, I'm not sure what's the right way to handle this. Maybe there's something I can set on my end to resolve this though?

If you update to the latest version of lock-api this is fixed. Just run cargo update.


Allow Abort.redirect(…) to pass through the middleware

This should solve #8.

Pushed a fix to ensure we get the correct location headers

Thanks @0xTim - I've still got a lot to learn here. I appreciate your review and help!


As an author, comments on friend posts are private only to me the original author

@Jdvdb has to finish author stuff first
@ivanseit2001 complete the friend stuff?
@jaspreetkaursohal take care of completing the issue after those 2 things are done


bash_unit: run tests in checkPhase

Description of changes
Run tests for package bash_unit.
Ported from improvement over #271561 that were stalled.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

cc @kingarrrt @wegank

Add a :+1: reaction to pull requests you find important.


Make the testmonial section visibility better

Describe the bug
in the testimonial section the text is not completely visible.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Video Explanation
A clear video showing the bug.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Hello @Mayank77maruti
I would like to complete this task.

@prayag78 , Don't forget to star the repo.
you can start contributing.


docs(assets): move images to /public

@levithomason I need this for #2925, also as I see images in stardust were also moved.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@0d00166). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2935   +/-   ##
=========================================
  Coverage          ?   99.78%
=========================================
  Files             ?      161
  Lines             ?     2760
  Branches          ?        0
=========================================
  Hits              ?     2754
  Misses            ?        6
  Partials          ?        0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0d00166...c683654. Read the comment docs.

Released in<EMAIL_ADDRESS>


[Improvement] App is not grabbing new Song, if searching lyrics from other song.

Hi there,
not really an issue but yeah I wanted to say it. So it's probably more an FYI ;)
If a lyrics need really long to load, and while its loading you switch the Song you'll have to wait until its finished loading before the new song lyrics get fetched.

Also it's causing that the "new" song lyrics will be out of sync.
(And yeah, the lyrics for this song is pretty wrong: https://open.spotify.com/track/6b5rA9rthDbZDOQp9UbOgl )

Yeah, I noticed too the same issue. But it is because the program get the info(title) window and has some delay on the loop.
And with the lyrics what is the source where are you getting the lyrics?
For example when I play the song this is the link I get:
http://minilyrics.com/lu4/9d/fq_spwoqosh.lrc

I didn't fix this issue per se, but I think I fixed a slow down issue that made this issue happen more often than it normally would. So it should happen less in the newest version.


KMI solar duration bug fix

Small bug: If you selected to show the KMI solar duration as minutes, but there were invalid times (NaT), Pandas would automatically parse the whole column as times while the other values were ints, resulting in wrong values. Fix is to use NaN instead of NaT when solar duration is asked in minutes.

I still don't know why my git keeps on showing all previous commits, when I obviously just merged the main branch...


pip install --upgrade pipenv doesn't update pipenv when in pipenv shell

Wrote originally about problem similar to https://github.com/pypa/pipenv/issues/4642 but in fact the PATH:ness of pipenv prevented me to upgrade pipenv to get the fix for pipenv install --pre commands.
I've done pip install --upgrade pipenv and get no extra updates to pipenv, but when pipenv shell is present, it doesn't actually upgrade the symlink we use for pipenv itself and it doesn't forward the upgrade to the pyenv's pip.
Maybe this is known and "wontfix", in which case you should just close it.

can I work on this issue?

@haf I think you would have to ask which pipenv to see, because chances are you upgraded one in your virtualenv but your PATH is referencing one installed at a global system level.   As for pyenv, that is a different project.   Virtualenv will copy in the current version of pip and python when they are created, so often you'll have to recreated them after you upgrade python or possibly even pip.  I have some addition in my .bashrc to be able to use my user installed pipenv, and I uninstalled my global pipenv.
export PATH=/home/mdavis/.local/bin:$PATH