docs(/http-proxy-caching) Added link to RFC

NOTE: Please read the CONTRIBUTING.md guidelines before submitting your patch,
and ensure you followed them all:
https://github.com/Kong/docs.konghq.com/blob/master/CONTRIBUTING.md
Summary
This plugin has a parameter for config.cache_control which is a Boolean value for whether or not to respect RFC 7234. I added a link to the RFC in question as some may not know it off hand
Full changelog

made RFC 7234 a link pointing to ]https://tools.ietf.org/html/rfc7234#section-5.2](https://tools.ietf.org/html/rfc7234#section-5.2)

Issues resolved

Checklist:

[ ] Commit message & atomicity checked
[ ] Documentation
[ ] Spellchecked my updates
[ ] Ready to be merged

redoing to address


Zebra label printer does not work

Please verify that this bug has NOT been raised before.

[x] I checked and didn't find a similar issue

Describe the bug*
I upgraded from inventree version v16.1 to v17.0
On 16.1 everything worked fine.
On 17.0 the printer does not work annymore
Steps to Reproduce
Print an label on anny item and it does not give a label at the printer
But the printer will show it has an output job and finishes it, but no label wil come out.
Expected behaviour
Print a label
Deployment Method

[ ] Docker
[ ] Package
[x] Bare metal
[ ] Other - added info in Steps to Reproduce

Version Information
Version Information:
InvenTree-Version: 0.17.0
Django Version: 4.2.17
Database: sqlite3
Debug-Mode: False
Deployed using Docker: False
Platform: Linux-5.4.0-204-generic-x86_64-with-glibc2.31
Installer: None
Active plugins: [{'name': 'InvenTreeBarcode', 'slug': 'inventreebarcode', 'version': '2.1.0'}, {'name': 'InvenTreeCoreNotificationsPlugin', 'slug': 'inventreecorenotificationsplugin', 'version': '1.0.0'}, {'name': 'InvenTreeCurrencyExchange', 'slug': 'inventreecurrencyexchange', 'version': '1.0.0'}, {'name': 'InvenTreeLabel', 'slug': 'inventreelabel', 'version': '1.1.0'}, {'name': 'InvenTreeLabelMachine', 'slug': 'inventreelabelmachine', 'version': '1.0.0'}, {'name': 'InvenTreeLabelSheet', 'slug': 'inventreelabelsheet', 'version': '1.0.0'}, {'name': 'DigiKeyPlugin', 'slug': 'digikeyplugin', 'version': '1.0.0'}, {'name': 'LCSCPlugin', 'slug': 'lcscplugin', 'version': '1.0.0'}, {'name': 'MouserPlugin', 'slug': 'mouserplugin', 'version': '1.0.0'}, {'name': 'TMEPlugin', 'slug': 'tmeplugin', 'version': '1.0.0'}, {'name': 'Zebra', 'slug': 'zebra', 'version': '0.7.0'}]
Please verify if you can reproduce this bug on the demo site.

[ ] I can reproduce this bug on the demo site.

Relevant log output

@SergeoLacruz maintains the zebra printer plugin

Any message from the printer driver in the logs?
Network or USB printer?
Please check the printer settings. Perhaps something got lost during the update.

These are the settings between different versions (v16.1 and 17.0).
And I die not get Anny error. Or is there a place where I can check for error log's?
At least the admin page / error does not give anything.
But do I need to post this issue at the zebra label printer plugin in github?

If there are errors, they should be visible in the InvenTree log.
I think you do not use a ZPL template because this is new to 0.7.0.
The settings seem to be OK. You use a network printer. In our setup the printer sometimes looses the connection, for whatever reason, and needs to be reset by switching off for a few seconds. Can you reach the printers WEB UI?
If the printer is online and still does not print have a look here:
https://github.com/SergeoLacruz/inventree-zebra-plugin/blob/dd8bfaa23c7b9d3cdb1718436af05d261517e024/inventree_zebra/zebra_plugin.py#L150C7-L153C27
Uncomment these lines and have a look at the file that is sent out to the printer.

These are the settings between different versions (v16.1 and 17.0).
And I die not get Anny error. Or is there a place where I can check for error log's?
At least the admin page / error does not give anything.
But do I need to post this issue at the zebra label printer plugin in github?

I did not use zpl commands.
I did use this:
`{% extends "label/label_base.html" %}
{% load l10n i18n barcode %}
{% block style %}
@page {
size: 70mm 32mm; /* Dit definieert de grootte van de pagina /
margin: 0mm; / Standaard marge rondom de pagina */
}
.label-container {
display: block;
width: 100%;
height: 100%;
padding: 2mm;
box-sizing: border-box;
overflow: hidden; /* Zorg ervoor dat inhoud niet buiten de container valt */
}
.header {
width: calc(100% - 4mm);
height: 3mm;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
box-sizing: border-box;
padding-bottom: 5mm;
line-height: 3mm;
}
.content {
display: flex;
flex-direction: row;
height: 32mm; /* Verminderd om overloop aan de onderkant te voorkomen */
width: 100%;
overflow: hidden;
}
.left-column, .right-column {
display: flex;
border-top: 1px solid black;
align-items: flex-start; /* Verplaatst de QR-code omhoog */
padding: 0;
box-sizing: border-box;
height:22mm;
}
.left-column {
width: 30%;
justify-content: center;
border-right: 1px solid black;
padding-right: 2mm; /* Voegt wat ruimte toe aan de rechterkant van de linker kolom */
}
.right-column {
width: 70%;
display: block;
justify-content: left; /* Zorgt ervoor dat de inhoud bovenaan begint /
padding-top: 1mm;
padding-left: 1mm;
box-sizing: border-box; / Houdt rekening met padding in de totale breedte */
}
.qr {
height: 20mm;
width: 20mm;
object-fit: contain; /* Zorg ervoor dat de afbeelding correct wordt geschaald /
position: relative; / Nodig voor z-index /
z-index: 10; / Zorg ervoor dat de QR-code boven andere elementen ligt */
display: block;
box-sizing: border-box;
margin-top: 1mm;
}
.path {
font-family: Arial, Helvetica, sans-serif;
font-size: 6pt;
text-align: left;
white-space: normal;
width: 100%;
overflow-wrap: break-word;
line-height: 1.2;
overflow: hidden;
}
.bold-label {
font-weight: bold;
}
{% endblock style %}
{% block content %}

    {% if part.name %}
	{{ part.name }}
	{% endif %}

			{% if part.IPN %}
			IPN:  {{ part.IPN }}
			{% endif %}

		{% if part.default_supplier %}

			SKU:  {{ part.default_supplier.supplier.name }} | {{ part.default_supplier.SKU }}

			MPN:  {{ part.default_supplier.manufacturer_string }}

		{% endif %}

			{% if part.description %}
			Omschrijving:  {{ part.description }}
			{% endif %}

{% endblock content %}
`
I did make an new label template with the following example from the zebra label GitHub:
{% autoescape off %} ^FT30,25^A0N,18,22^FDIPN^FS ^FT150,30^FB100,1,,C,,^A0N,24,32^FDACME^FS ^FT320,25^A0N,18,22^FD{{ item.pk }}^FS ^FT100,70^FB200,2,,C,,^A0N,18,22^FD{{ part.name }}^FS ^FT100,100^FB200,1,,C,,^A0N,18,22^FD{{ part.manufacturer_parts.first.manufacturer.name }}^FS ^FT30,150^FB340,1,,C,,^A0N,30,40^FD{{ part.IPN }}^FS ^FT20,210^FB360,3,,L,,^A0N,18,22^FD{{ part.description }}^FS ^FT15,110^BQ,2,3^FDQA,{{ part.IPN }}^FS ^FT310,130^BQ,2,3^FDQA,{{ qr_data }}^FS {% endautoescape %}
But still no label from the printer
I use a gk420t printer with the labels being 70*32
I did not have connection problems with the printer, I can connect to the homepage and I can ping the device from the server. Also it adds an item to the job log.
Is it possible there is an item I forgot to enable to print zpl commands directly ?
Many Thanks for the fast response

I have taken the printer to the location where the Inventree is hosted and put it on the same network. Changed the ip of the device in the printer settings and I was trying to print. It did print a label with the correct information.
I put it back on the original location changed the ip address back to the adress it now has on the location and now it does not print anything anymore.
The server can ping the device. The device is in an other part of the country and connected via VPN tunnel to the server.
But still strange because 16.1 Inventree did work and 17.0 not. Could there be an limitation in communication between networks ?

I meanwhile copied your html template into my setup and it works OK. There is no problem with your labels.
I do not think that InvenTree 17 is the problem. The code that controls the printer is in the printer driver:
https://github.com/SergeoLacruz/inventree-zebra-plugin/blob/dd8bfaa23c7b9d3cdb1718436af05d261517e024/inventree_zebra/zebra_plugin.py#L164C1-L174C92
There was no change here for a long time. It can be you are running a different python version and the behavior of the socket
library has changed. Or the VPN now blocks certain traffic.

Discussion will be continued here:
https://github.com/SergeoLacruz/inventree-zebra-plugin/issues/9

Thanks @SergeoLacruz

Just to inform. This was a socket timeout error because of ZPL file size and slow connection.


Initial api call vs Language provider

In my app, I'm performing initial calls to my backend server in order to initalize properly my app.
I'm performing these api calls by dispatching actions in the componentWillMount lifecycle method of the App container.
Also, the whole app is wrapped up in the LanguageProvider container provided with the boilerplate.
When changing the locale, the whole components under LanguageProvider are kinda reloaded. The App container is also reloaded, causing all the initial api calls to be executed again.
I was wondering where is the best place to perform these calls in order to avoid duplicate api calls to the api ?

componentDidMount for server calls

Thanks but as stated, changing the locale makes the all api reload, performing all the api calls in componentWillMount or componentDidMount a second time.

Umm... interesting!
My idea would be to make the api call depending on a redux state value.
As I persist the initial API calls values (in redux state and localstorage) and the locale, I didn't realize about that. By the way, using redux-persist-immutable for that.

Hey there, looks like this isn't an issue with react-boilerplate. If you're looking for help, check out StackOverflow and post your question there.


Add icon to home screen not showing on beta branch

Samsung Galaxy 5
Chrome
Definition of Done

[ ] beta branch should show add to homescreen pop correctly

I tested it on real devices (Samsung galaxy s8, Huawei p20) and it is working well. The popup is not displayed on the desktop because the 'beforeinstallprompt' event is not triggered (tested on chrome, safari, Mozilla Firefox).

i tested now on ewallet.gooddollar.org and I dont get the popup. i have mi
8.

@sirpy yes, I need to push fix, then it should work

@sirpy I pushed the fix to 593 branch | PR - https://github.com/GoodDollar/GoodDAPP/pull/728

Checked on ewallet.gooddollar.org
The pop-up is displayed (see the attachment)
@sirpy  I leave ticket in QA cause it should be tested tomorrow after new claim.


CI: enhance JUnit output

A trailing dot is needed to ensure that the test name is treated as
top-level package and is shown directly by the UI.

Yes, that looks better: https://cloudnative-k8sci.southcentralus.cloudapp.azure.com/job/pmem-csi/view/change-requests/job/PR-440/lastCompletedBuild/testReport/

looks better, but is that all we can get ? The list of test sets shows as links, so I click on one, but this takes me to empty list. Also, there appears down-pointed-triangle on the right side when I move mouse over a line, indicating a menu or list would appear, but there is none. Something still missing?

Olev Kartau<EMAIL_ADDRESS>writes:

looks better, but is that all we can get ? The list of test sets shows
as links, so I click on one, but this takes me to empty list. Also,
there appears down-pointed-triangle on the right side when I move
mouse over a line, indicating a menu or list would appear, but there
is none. Something still missing?

I think that's because output is not recorded for successful
tests. The Ginkgo JUnit file doesn't include it and the Jenkins JUnit
also would ignore it by default even if it was present.


Noto Sans/Serif and Display versions are showing an incorrect diacritical mark in the Vietnamese language

Defect Report

Noto fonts can be obtained from https://notofonts.github.io/
If you find a problem with a released font, then please use this template to file a defect report.
Before filing your report, please check if the issue has been fixed in the latest development build. You can get development builds by finding the font family on https://notofonts.github.io/ and following the link to "Development builds".

Title
Noto Sans/Serif and Display versions are showing an incorrect diacritical mark in the Vietnamese language
Font

NotoSansDisplay.ttf (all fontstyles)
NotoSans.ttf (all fontstyles)
NotoSerifDisplay.ttf (all fontstyles)
NotoSerif.ttf (all fontstyles)

Where the font came from, and when
https://fonts.google.com/noto, Date: 2024-02-16
https://fonts.google.com/selection?noto.query=noto+sans+display, Date: 2023-09-15
Font Version
N/A
OS name and version
MacOS: 14.2.1
Issue

If you use Noto Sans/Serif/Display to set Vietnamese texts, the character "ề" is displayed incorrectly.
In the Screenshot I show the incorrect version and the correct version from an other font.

Character data
Vietnamese text:
Mọi con mắt đều đổ dồn vào đội Fronius của bạn!
This character ist wrong in Noto Sans/Serif/Display: ề
Screenshot
see attached

This is a stylistic choice; according to Donny Truong's Vietnamese Typography:

The position of the diacritical marks can vary. As illustrated here, accents can be placed on the right side of a circumflex, on either side (usually an acute on the right and a grave on the left), or on the top. Accents on the right are ideal for consistency and the natural flow of text. Accents on either side are more distinguishable, but might slow down the process of saccades. Accents on the top are more balanced, but might affect the leading. For the ease and comfort of reading, accents (including a hook above) positioned consistently on the right are recommended, but type designers should choose the positions that best fit their design.

As well as showing Noto Serif in his site, he also gives the example of Spectral by Production Type which has grave accents on the left of the circumflex.


Updated build-tools versions from 27.0.1 to 28.0.3, the platforms ver…

Updated build-tools versions from 27.0.1 to 28.0.3, the platforms version from 27 to 28 and aemm-android to 8.0.0.

Codecov Report

Merging #79 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master      #79   +/-   ##
=======================================
  Coverage   38.25%   38.25%
=======================================
  Files          25       25
  Lines        1286     1286
  Branches      167      167
=======================================
  Hits          492      492
  Misses        794      794

Impacted Files
Coverage Δ

src/platform-android.js
0% <0%> (ø)
:arrow_up:

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 8b53be5...559c1c8. Read the comment docs.


No flash messages (404s?) appear for misspelled or deleted playlists or tracks within a playlist/track url structure

This is unlike single user/tracks or users (or other root pages) that give a "hmm" indication

I believe we need to add content to pages/four_oh_four.html.erb
I, [2019-08-20T18:52:12.511262 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67] Processing by PlaylistsController#show as HTML
I, [2019-08-20T18:52:12.511338 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Parameters: {"user_id"=>"montgomeru", "id"=>"night-or-day", "asset_id"=>"night-or-day3"}
I, [2019-08-20T18:52:12.544450 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendering layouts/white_theme.html.erb
I, [2019-08-20T18:52:12.544828 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendering pages/four_oh_four.html.erb within layouts/white_theme
I, [2019-08-20T18:52:12.545140 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered pages/four_oh_four.html.erb within layouts/white_theme (Duration: 0.2ms | Allocations: 66)
I, [2019-08-20T18:52:12.552026 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered shared/_javascript_payload.html.erb (Duration: 4.0ms | Allocations: 1146)
I, [2019-08-20T18:52:12.555673 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered shared/_header.html.erb (Duration: 3.3ms | Allocations: 1162)
I, [2019-08-20T18:52:12.556558 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered shared/_search.html.erb (Duration: 0.7ms | Allocations: 233)
I, [2019-08-20T18:52:12.557710 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendering app/assets/images/svg/animation_play.svg
I, [2019-08-20T18:52:12.557991 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered app/assets/images/svg/animation_play.svg (Duration: 0.2ms | Allocations: 57)
I, [2019-08-20T18:52:12.558411 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered greenfield/app/views/layouts/greenfield/_ga.html.erb (Duration: 0.2ms | Allocations: 68)
I, [2019-08-20T18:52:12.558812 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered shared/_headway.html.erb (Duration: 0.2ms | Allocations: 66)
I, [2019-08-20T18:52:12.558991 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67]   Rendered layouts/white_theme.html.erb (Duration: 14.4ms | Allocations: 4300)
I, [2019-08-20T18:52:12.559324 #28723]  INFO -- : [85419b31-e89b-428a-a85f-1970ba684c67] Completed 404 Not Found in 48ms (Views: 12.7ms | ActiveRecord: 22.6ms | Allocations: 8822)


Initial commit, extracted from Sweetness

This commit extracts the encryption of selected fields found in Sweetness into its own gem.
cc @fancyremarker @aaw

This LGTM.

Set up Travis CI, but the build passed for me locally so feel free to merge.


But, when I call (from browser) /charts (without any parameter) I get this result from the echo above:
0, 1, 2, 3
Am I doing something wrong? is this a bug? Does it work this way by design?
Thanks
Federico

didn't anybody have the same behavior?

thanks...it works perfectly now!
On Tue, Jun 23, 2015 at 4:38 PM, Jacob Wright<EMAIL_ADDRESS>wrote:

Closed #39 https://github.com/jacwright/RestServer/issues/39 via 3659a89
https://github.com/jacwright/RestServer/commit/3659a892ad47e8679fea88230dcd50e6e3c9c5b8
.
—
Reply to this email directly or view it on GitHub
https://github.com/jacwright/RestServer/issues/39#event-337893872.

Thank you for reporting it.


Tables are sometimes broken

Tables float sometimes inside the previous one.
Example:
https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html#shortcuticon

It looks like there is already a class to clear the column (cc) but it has no styles.
Adding a
.cc { clear: both }

does fix the problem.

Those contents were real tables in the OpenOffice documents. When moving them to html we gave up real real tables and are using definition lists that look a bit like the original tables but are (more) responsive. Initially that was only planned as a temporary workaround. But since then nobody has invented something better und people prefer that view to real tables or pure definition lists like https://docs.typo3.org/typo3cms/TyposcriptReference/DataTypes/Align/Index.html So we just keep it for the moment and observe the "amazing float effects" that sometimes occurr.
Note: You are in no way forced to use that format in your own manuals. It's just the other way around: Everybody is encouraged to invent something that does the job better!

@marble But wouldn't it be a quick win to add just the mentioned css? That would fix the issue with no side effect as far as i can see. And the problem is that this is the official documentation that is broken.

Ah, sorry, I misunderstood the problem. Let me see again.

Yes, thank you very much for reporting and providing a suggestion. I'll care about this issue next time when I work on the theme. It's nice for me to see people really care!

See also https://github.com/TYPO3-Documentation/t3SphinxThemeRtd/issues/52


Fix to #11904 - 2.1 regression: "variable referenced from scope '', but it is not defined" exception in GroupBy query translation

Problem was that we were not correctly handling scenarios where multiple groupbys are present:

if combined with Include, we would try to create orderings based on grouping keys for each group by. This is incorrect because all group keys apart from the innermost are out of scope of the inner query model (where we attempted to add them)
if combined with aggregate we would try to translate into group-aggregate pattern and fail.

Fix is to only add ordering for the first grouping in case of include (includes are ignored for multi-groupby scenarios, so there is no risk of collection misalignment) and don't try to convert queries into group-aggregate pattern if multiple groupbys are present in the query.

@dotnet-bot test windows release x64 build


promote PrivaDEX dapp to prod

Should we include it for iOS as well?

Just don't want it interfere the AppStore review process


python3 or python2? kafka_etl

use python3 error: run python3 kafka_etl.py
  File "kafka_etl.py", line 61
    print topic
              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(topic)?

use python2 error: run pip install --user -r requirements.txt
Collecting confluent-kafka[avro]==1.1.0
  Using cached https://files.pythonhosted.org/packages/bc/52/f7464e17cfb2c4b083cff5f3ac39522ad3cbb851ed8c79810884fbe0902d/confluent_kafka-1.1.0-cp27-cp27m-macosx_10_6_intel.whl
Collecting python-schema-registry-client==1.2.1
  Using cached https://files.pythonhosted.org/packages/ac/56/c08ba77164fb26539746c3c81e3ad0940af581d75a36e44a4541938f5253/python-schema-registry-client-1.2.1.tar.gz
Collecting kazoo==2.5.0
  Using cached https://files.pythonhosted.org/packages/76/af/942ec55feb58f8774e88fa6fd63433b53f4ab1b0b1397ff9355280162ec0/kazoo-2.5.0-py2.py3-none-any.whl
Collecting enum34; python_version < "3.4"
  Using cached https://files.pythonhosted.org/packages/6f/2c/a9386903ece2ea85e9807e0e062174dc26fdce8b05f216d00491be29fad5/enum34-1.1.10-py2-none-any.whl
Collecting requests; python_version < "3.2"
  Using cached https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl
Collecting futures; python_version < "3.2"
  Using cached https://files.pythonhosted.org/packages/d8/a6/f46ae3f1da0cd4361c344888f59ec2f5785e69c872e175a748ef6071cdb5/futures-3.3.0-py2-none-any.whl
Collecting avro; python_version < "3.0" and extra == "avro"
  Using cached https://files.pythonhosted.org/packages/d7/0b/592692ed26de33f35bf596780e6adb85c47e3e58061369bbc99125b902ec/avro-1.9.2.tar.gz
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/pip-install-M6XXRJ/avro/setup.py'"'"'; __file__='"'"'/private/var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/pip-install-M6XXRJ/avro/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/pip-install-M6XXRJ/avro/pip-egg-info
         cwd: /private/var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/pip-install-M6XXRJ/avro/
    Complete output (47 lines):
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
      warnings.warn(msg)
    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'testsuite'
    warning: no previously-included files matching '*.pyo' found under directory 'testsuite'
    no previously-included directories found matching 'docs/_build'

    Installed /private/var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/pip-install-M6XXRJ/avro/.eggs/pycodestyle-2.6.0-py2.7.egg
    Searching for isort
    Reading https://pypi.python.org/simple/isort/
    Best match: isort 4.3.21
    Downloading https://files.pythonhosted.org/packages/43/00/8705e8d0c05ba22f042634f791a61f4c678c32175763dcf2ca2a133f4739/isort-4.3.21.tar.gz#sha256=54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1
    Processing isort-4.3.21.tar.gz
    Writing /var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/easy_install-wqDmjg/isort-4.3.21/setup.cfg
    Running isort-4.3.21/setup.py -q bdist_egg --dist-dir /var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/easy_install-wqDmjg/isort-4.3.21/egg-dist-tmp-uhQWE1
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
      warnings.warn(msg)
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/4d/3zsvmn6j4019gfhmfphgfxsh0000gn/T/pip-install-M6XXRJ/avro/setup.py", line 84, in <module>
        'zstandard': ['zstandard'],
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 111, in setup
        _setup_distribution = dist = klass(attrs)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py", line 268, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py", line 313, in fetch_build_eggs
        replace_conflicting=True,
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 843, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 1088, in best_match
        return self.obtain(req, installer)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 1100, in obtain
        return installer(requirement)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py", line 380, in fetch_build_egg
        return cmd.easy_install(req)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 638, in easy_install
        return self.install_item(spec, dist.location, tmpdir, deps)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 668, in install_item
        dists = self.install_eggs(spec, download, tmpdir)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 851, in install_eggs
        return self.build_and_install(setup_script, setup_base)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 1079, in build_and_install
        self.run_setup(setup_script, setup_base, args)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 1067, in run_setup
        raise DistutilsError("Setup script exited with %s" % (v.args[0],))
    distutils.errors.DistutilsError: Setup script exited with error in isort setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Expected version spec in futures; python_version < "3.2" at ; python_version < "3.2"
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Yeah it was written for python 2.
You can solve it of course by changing it to print(topic).
You should however run into more issues, I had them as well.
I'd suggest you use python3.7 with python3-pip and change the requirements.txt to:
confluent-kafka
avro-python3==1.8.2
kazoo==2.5.0
requests

And let pip figure it out itself. Note that I specifically required avro-python3 1.8.2 because there's a dependency issue with the newer version which breaks atm.

Yeah it was written for python 2.
You can solve it of course by changing it to print(topic).
You should however run into more issues, I had them as well.
I'd suggest you use python3.7 with python3-pip and change the requirements.txt to:
confluent-kafka
avro-python3==1.8.2
kazoo==2.5.0
requests

And let pip figure it out itself. Note that I specifically required avro-python3 1.8.2 because there's a dependency issue with the newer version which breaks atm.

I use python3.7 to run kafka_etl.py, and I have changed it to print(topic), new issues. T.T
Traceback (most recent call last):
  File "kafka_etl.py", line 5, in <module>
    from confluent.schemaregistry.client import CachedSchemaRegistryClient
ModuleNotFoundError: No module named 'confluent'

Does it seem that some dependencies not import?

Change the import statement from:
from confluent
to:
from confluent_kafka.avro
On Wed, Jun 3, 2020, 07:52 发给官兵<EMAIL_ADDRESS>wrote:

Yeah it was written for python 2.
You can solve it of course by changing it to print(topic).
You should however run into more issues, I had them as well.
I'd suggest you use python3.7 with python3-pip and change the
requirements.txt to:
confluent-kafka
avro-python3==1.8.2
kazoo==2.5.0
requests
And let pip figure it out itself. Note that I specifically required
avro-python3 1.8.2 because there's a dependency issue with the newer
version which breaks atm.
I use python3.7 to run kafka_etl.py, and I have changed it to print(topic),
new issues. T.T
Traceback (most recent call last):
File "kafka_etl.py", line 5, in
from confluent.schemaregistry.client import CachedSchemaRegistryClient
ModuleNotFoundError: No module named 'confluent'
Does it seem that some dependencies not import?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/linkedin/datahub/issues/1688#issuecomment-637970553,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQMENQN3GT2OVQEF2O3QGLRUXQKDANCNFSM4NRJJ5BA
.

Change the import statement from: from confluent to: from confluent_kafka.avro
…
On Wed, Jun 3, 2020, 07:52 发给官兵 @.***> wrote: Yeah it was written for python 2. You can solve it of course by changing it to print(topic). You should however run into more issues, I had them as well. I'd suggest you use python3.7 with python3-pip and change the requirements.txt to: confluent-kafka avro-python3==1.8.2 kazoo==2.5.0 requests And let pip figure it out itself. Note that I specifically required avro-python3 1.8.2 because there's a dependency issue with the newer version which breaks atm. I use python3.7 to run kafka_etl.py, and I have changed it to print(topic), new issues. T.T Traceback (most recent call last): File "kafka_etl.py", line 5, in  from confluent.schemaregistry.client import CachedSchemaRegistryClient ModuleNotFoundError: No module named 'confluent' Does it seem that some dependencies not import? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#1688 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQMENQN3GT2OVQEF2O3QGLRUXQKDANCNFSM4NRJJ5BA .

kafka_etl.py:54: DeprecationWarning: CachedSchemaRegistry constructor is being deprecated. Use CachedSchemaRegistryClient(dict: config) instead. Existing params ca_location, cert_location and key_location will be replaced with their librdkafka equivalents as keys in the conf dict: `ssl.ca.location`, `ssl.certificate.location` and `ssl.key.location` respectively
  client = CachedSchemaRegistryClient(SCHEMAREGISTRY)
Schema not found:404
topic-trans-value
Traceback (most recent call last):
  File "kafka_etl.py", line 64, in <module>
    build_kafka_dataset_mce(dataset_name, str(schema), int(schema_version))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

and
long(time.time() long seems undefined or not import.
I'm not a python developer, I feel there will be more and more problems. Do you have scripts?

In transit atm so not readily available.
But change int(version) simply to 1
and remove long from time so
long(time.time())
to
time.time()
Those should be all.
On Wed, Jun 3, 2020, 09:16 发给官兵<EMAIL_ADDRESS>wrote:

Change the import statement from: from confluent to: from
confluent_kafka.avro
… <#m_436325067260601451_>
On Wed, Jun 3, 2020, 07:52 发给官兵 @.***> wrote: Yeah it was written for
python 2. You can solve it of course by changing it to print(topic). You
should however run into more issues, I had them as well. I'd suggest you
use python3.7 with python3-pip and change the requirements.txt to:
confluent-kafka avro-python3==1.8.2 kazoo==2.5.0 requests And let pip
figure it out itself. Note that I specifically required avro-python3 1.8.2
because there's a dependency issue with the newer version which breaks atm.
I use python3.7 to run kafka_etl.py, and I have changed it to print(topic),
new issues. T.T Traceback (most recent call last): File "kafka_etl.py",
line 5, in from confluent.schemaregistry.client import
CachedSchemaRegistryClient ModuleNotFoundError: No module named 'confluent'
Does it seem that some dependencies not import? — You are receiving this
because you commented. Reply to this email directly, view it on GitHub <#1688
(comment)
https://github.com/linkedin/datahub/issues/1688#issuecomment-637970553>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQMENQN3GT2OVQEF2O3QGLRUXQKDANCNFSM4NRJJ5BA
.
kafka_etl.py:54: DeprecationWarning: CachedSchemaRegistry constructor is being deprecated. Use CachedSchemaRegistryClient(dict: config) instead. Existing params ca_location, cert_location and key_location will be replaced with their librdkafka equivalents as keys in the conf dict: ssl.ca.location, ssl.certificate.location and ssl.key.location respectively
client = CachedSchemaRegistryClient(SCHEMAREGISTRY)
Schema not found:404
topic-trans-value
Traceback (most recent call last):
File "kafka_etl.py", line 64, in
build_kafka_dataset_mce(dataset_name, str(schema), int(schema_version))

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
and
long(time.time() long seems undefined or not import.
I'm not a python developer, I feel there will be more and more problems.
Do you have scripts?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/linkedin/datahub/issues/1688#issuecomment-638006350,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQMENUFFI7PLE7YY6H7CULRUX2DJANCNFSM4NRJJ5BA
.

In transit atm so not readily available. But change int(version) simply to 1 and remove long from time so long(time.time()) to time.time() Those should be all.
…
On Wed, Jun 3, 2020, 09:16 发给官兵 @.> wrote: Change the import statement from: from confluent to: from confluent_kafka.avro … <#m_436325067260601451_> On Wed, Jun 3, 2020, 07:52 发给官兵 @.> wrote: Yeah it was written for python 2. You can solve it of course by changing it to print(topic). You should however run into more issues, I had them as well. I'd suggest you use python3.7 with python3-pip and change the requirements.txt to: confluent-kafka avro-python3==1.8.2 kazoo==2.5.0 requests And let pip figure it out itself. Note that I specifically required avro-python3 1.8.2 because there's a dependency issue with the newer version which breaks atm. I use python3.7 to run kafka_etl.py, and I have changed it to print(topic), new issues. T.T Traceback (most recent call last): File "kafka_etl.py", line 5, in from confluent.schemaregistry.client import CachedSchemaRegistryClient ModuleNotFoundError: No module named 'confluent' Does it seem that some dependencies not import? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#1688 (comment) <#1688 (comment)>>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQMENQN3GT2OVQEF2O3QGLRUXQKDANCNFSM4NRJJ5BA . kafka_etl.py:54: DeprecationWarning: CachedSchemaRegistry constructor is being deprecated. Use CachedSchemaRegistryClient(dict: config) instead. Existing params ca_location, cert_location and key_location will be replaced with their librdkafka equivalents as keys in the conf dict: ssl.ca.location, ssl.certificate.location and ssl.key.location respectively client = CachedSchemaRegistryClient(SCHEMAREGISTRY) Schema not found:404 topic-trans-value Traceback (most recent call last): File "kafka_etl.py", line 64, in  build_kafka_dataset_mce(dataset_name, str(schema), int(schema_version)) TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' and long(time.time() long seems undefined or not import. I'm not a python developer, I feel there will be more and more problems. Do you have scripts? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#1688 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQMENUFFI7PLE7YY6H7CULRUX2DJANCNFSM4NRJJ5BA .

It works.
kafka_etl.py:54: DeprecationWarning: CachedSchemaRegistry constructor is being deprecated. Use CachedSchemaRegistryClient(dict: config) instead. Existing params ca_location, cert_location and key_location will be replaced with their librdkafka equivalents as keys in the conf dict: `ssl.ca.location`, `ssl.certificate.location` and `ssl.key.location` respectively
  client = CachedSchemaRegistryClient(SCHEMAREGISTRY)
MetadataChangeEvent-value

{'auditHeader': None, 'proposedSnapshot': ('com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot', {'urn': 'urn:li:dataset:(urn:li:dataPlatform:kafka,MetadataChangeEvent,PROD)', 'aspects': [{'schemaName': 'MetadataChangeEvent', 'platform': 'urn:li:dataPlatform:kafka', 'version': 1, 'created': {'time':<PHONE_NUMBER>.2122471, 'actor': 'urn:li:corpuser:'}, 'lastModified': {'time':<PHONE_NUMBER>.2122471, 'actor': 'urn:li:corpuser:'}, 'hash': '', 'platformSchema': {'documentSchema': '{"type": "record", "name": "MetadataChangeEvent", "namespace": "com.linkedin.pegasus2avro.mxe", "fields": [{"type": ["null", {"type": "record", "name": "KafkaAuditHeader", "namespace": "com.linkedin.events", "fields": [{"compliance": [{"policy": "EVENT_TIME"}], "type": "long", "name": "time", "doc": "The time at which the event was emitted into kafka."}, {"compliance": "NONE", "type": "string", "name": "server", "doc": "The fully qualified name of the host from which the event is being emitted."}, {"compliance": "NONE", "type": ["null", "string"], "name": "instance", "default": null, "doc": "The instance on the server from which the event is being emitted. e.g. i001"}, {"compliance": "NONE", "type": "string", "name": "appName", "doc": "The name of the application from which the event is being emitted. see go/appname"}, {"compliance": "NONE", "type": {"type": "fixed", "name": "UUID", "namespace": "com.linkedin.events", "size": 16}, "name": "messageId", "doc": "A unique identifier for the message"}, {"compliance": "NONE", "type": ["null", "int"], "name": "auditVersion", "default": null, "doc": "The version that is being used for auditing. In version 0, the audit trail buckets events into 10 minute audit windows based on the EventHeader timestamp. In version 1, the audit trail buckets events as follows: if the schema has an outer KafkaAuditHeader, use the outer audit header timestamp for bucketing; else if the EventHeader has an inner KafkaAuditHeader use that inner audit header\'s timestamp for bucketing"}, {"compliance": "NONE", "type": ["null", "string"], "name": "fabricUrn", "default": null, "doc": "The fabricUrn of the host from which the event is being emitted. Fabric Urn in the format of urn:li:fabric:{fabric_name}. See go/fabric."}, {"compliance": "NONE", "type": ["null", "string"], "name": "clusterConnectionString", "default": null, "doc": "This is a String that the client uses to establish some kind of connection with the Kafka cluster. The exact format of it depends on specific versions of clients and brokers. This information could potentially identify the fabric and cluster with which the client is producing to or consuming from."}], "doc": "This header records information about the context of an event as it is emitted into kafka and is intended to be used by the kafka audit application.  For more information see go/kafkaauditheader"}], "name": "auditHeader", "default": null, "doc": "Kafka audit header. See go/kafkaauditheader for more info."}, {"type": [{"type": "record", "name": "CorpUserSnapshot", "namespace": "com.linkedin.pegasus2avro.metadata.snapshot", "fields": [{"java": {"class": "com.linkedin.pegasus2avro.common.urn.CorpuserUrn"}, "type": "string", "name": "urn", "doc": "URN for the entity the metadata snapshot is associated with."}, {"type": {"type": "array", "items": [{"type": "record", "name": "CorpUserInfo", "namespace": "com.linkedin.pegasus2avro.identity", "fields": [{"type": "boolean", "name": "active", "doc": "Whether the corpUser is active, ref: https://iwww.corp.linkedin.com/wiki/cf/display/GTSD/Accessing+Active+Directory+via+LDAP+tools"}, {"type": ["null", "string"], "name": "displayName", "default": null, "doc": "displayName of this user ,  e.g.  Hang Zhang(DataHQ)"}, {"type": "string", "name": "email", "doc": "email address of this user"}, {"type": ["null", "string"], "name": "title", "default": null, "doc": "title of this user"}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.CorpuserUrn"}, "type": ["null", "string"], "name": "managerUrn", "default": null, "doc": "direct manager of this user"}, {"type": ["null", "long"], "name": "departmentId", "default": null, "doc": "department id this user belong to"}, {"type": ["null", "string"], "name": "departmentName", "default": null, "doc": "department name this user belong to"}, {"type": ["null", "string"], "name": "firstName", "default": null, "doc": "first name of this user"}, {"type": ["null", "string"], "name": "lastName", "default": null, "doc": "last name of this user"}, {"type": ["null", "string"], "name": "fullName", "default": null, "doc": "Common name of this user, format is firstName + lastName (split by a whitespace)"}, {"type": ["null", "string"], "name": "countryCode", "default": null, "doc": "two uppercase letters country code. e.g.  US"}], "doc": "Linkedin corp user information"}, {"type": "record", "name": "CorpUserEditableInfo", "namespace": "com.linkedin.pegasus2avro.identity", "fields": [{"type": ["null", "string"], "name": "aboutMe", "default": null, "doc": "About me section of the user"}, {"type": {"type": "array", "items": "string"}, "name": "teams", "default": [], "doc": "Teams that the user belongs to e.g. Metadata"}, {"type": {"type": "array", "items": "string"}, "name": "skills", "default": [], "doc": "Skills that the user possesses e.g. Machine Learning"}, {"java": {"class": "com.linkedin.pegasus2avro.common.url.Url", "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"}, "type": "string", "name": "pictureLink", "default": "https://raw.githubusercontent.com/linkedin/datahub/master/datahub-web/packages/data-portal/public/assets/images/default_avatar.png", "doc": "A URL which points to a picture which user wants to set as a profile photo"}], "doc": "Linkedin corp user information that can be edited from UI"}]}, "name": "aspects", "doc": "The list of metadata aspects associated with the CorpUser. Depending on the use case, this can either be all, or a selection, of supported aspects."}], "doc": "A metadata snapshot for a specific CorpUser entity."}, {"type": "record", "name": "DatasetSnapshot", "namespace": "com.linkedin.pegasus2avro.metadata.snapshot", "fields": [{"java": {"class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"}, "type": "string", "name": "urn", "doc": "URN for the entity the metadata snapshot is associated with."}, {"type": {"type": "array", "items": [{"type": "record", "name": "DatasetProperties", "namespace": "com.linkedin.pegasus2avro.dataset", "fields": [{"type": ["null", "string"], "name": "description", "default": null, "doc": "Documentation of the dataset"}, {"java": {"class": "java.net.URI"}, "type": ["null", "string"], "name": "uri", "default": null, "doc": "The abstracted URI such as hdfs:///data/tracking/PageViewEvent, file:///dir/file_name. Uri should not include any environment specific properties. Some datasets might not have a standardized uri, which makes this field optional (i.e. kafka topic)."}, {"type": {"type": "array", "items": "string"}, "name": "tags", "default": [], "doc": "tags for the dataset"}, {"type": {"type": "map", "values": "string"}, "name": "customProperties", "default": {}, "doc": "A key-value map to capture any other non-standardized properties for the dataset"}], "doc": "Properties associated with a Dataset"}, {"type": "record", "name": "DatasetDeprecation", "namespace": "com.linkedin.pegasus2avro.dataset", "fields": [{"type": "boolean", "name": "deprecated", "doc": "Whether the dataset is deprecated by owner."}, {"type": ["null", "long"], "name": "decommissionTime", "default": null, "doc": "The time user plan to decommission this dataset."}, {"type": "string", "name": "note", "doc": "Additional information about the dataset deprecation plan, such as the wiki, doc, RB."}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.Urn"}, "type": ["null", "string"], "name": "actor", "default": null, "doc": "The corpuser URN which will be credited for modifying this deprecation content."}], "doc": "Dataset deprecation status"}, {"type": "record", "name": "UpstreamLineage", "namespace": "com.linkedin.pegasus2avro.dataset", "fields": [{"type": {"type": "array", "items": {"type": "record", "name": "Upstream", "namespace": "com.linkedin.pegasus2avro.dataset", "fields": [{"type": {"type": "record", "name": "AuditStamp", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"type": "long", "name": "time", "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.Urn"}, "type": "string", "name": "actor", "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change."}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.Urn"}, "type": ["null", "string"], "name": "impersonator", "default": null, "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor."}], "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."}, "name": "auditStamp", "doc": "Audit stamp containing who reported the lineage and when"}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"}, "type": "string", "name": "dataset", "doc": "The upstream dataset the lineage points to"}, {"type": {"type": "enum", "symbolDocs": {"COPY": "Direct copy without modification", "TRANSFORMED": "Transformed data with modification (format or content change)", "VIEW": "Represents a view defined on the sources e.g. Hive view defined on underlying hive tables or a Hive table pointing to a HDFS dataset or DALI view defined on multiple sources"}, "name": "DatasetLineageType", "namespace": "com.linkedin.pegasus2avro.dataset", "symbols": ["COPY", "TRANSFORMED", "VIEW"], "doc": "The various types of supported dataset lineage"}, "name": "type", "doc": "The type of the lineage"}], "doc": "Upstream lineage information about a dataset including the source reporting the lineage"}}, "name": "upstreams", "doc": "List of upstream dataset lineage information"}], "doc": "Upstream lineage of a dataset"}, {"type": "record", "name": "InstitutionalMemory", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"type": {"type": "array", "items": {"type": "record", "name": "InstitutionalMemoryMetadata", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"java": {"class": "com.linkedin.pegasus2avro.common.url.Url", "coercerClass": "com.linkedin.pegasus2avro.common.url.UrlCoercer"}, "type": "string", "name": "url", "doc": "Link to an engineering design document or a wiki page."}, {"type": "string", "name": "description", "doc": "Description of the link."}, {"type": "com.linkedin.pegasus2avro.common.AuditStamp", "name": "createStamp", "doc": "Audit stamp associated with creation of this record"}], "doc": "Metadata corresponding to a record of institutional memory."}}, "name": "elements", "doc": "List of records that represent institutional memory of an entity. Each record consists of a link, description, creator and timestamps associated with that record."}], "doc": "Institutional memory of an entity. This is a way to link to relevant documentation and provide description of the documentation. Institutional or tribal knowledge is very important for users to leverage the entity."}, {"type": "record", "name": "Ownership", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"type": {"type": "array", "items": {"type": "record", "name": "Owner", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"java": {"class": "com.linkedin.pegasus2avro.common.urn.Urn"}, "type": "string", "name": "owner", "doc": "Owner URN, e.g. urn:li:corpuser:ldap, urn:li:corpGroup:group_name, and urn:li:multiProduct:mp_name"}, {"type": {"type": "enum", "symbolDocs": {"CONSUMER": "A person, group, or service that consumes the data", "DATAOWNER": "A person or group that is owning the data", "DELEGATE": "A person or a group that overseas the operation, e.g. a DBA or SRE.", "DEVELOPER": "A person or group that is in charge of developing the code", "PRODUCER": "A person, group, or service that produces/generates the data", "STAKEHOLDER": "A person or a group that has direct business interest"}, "name": "OwnershipType", "namespace": "com.linkedin.pegasus2avro.common", "symbols": ["DEVELOPER", "DATAOWNER", "DELEGATE", "PRODUCER", "CONSUMER", "STAKEHOLDER"], "doc": "Owner category or owner role"}, "name": "type", "doc": "The type of the ownership"}, {"type": ["null", {"type": "record", "name": "OwnershipSource", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"type": {"type": "enum", "symbolDocs": {"AUDIT": "Auditing system or audit logs", "DATABASE": "Database, e.g. GRANTS table", "FILE_SYSTEM": "File system, e.g. file/directory owner", "ISSUE_TRACKING_SYSTEM": "Issue tracking system, e.g. Jira", "MANUAL": "Manually provided by a user", "OTHER": "Other sources", "SERVICE": "Other ownership-like service, e.g. Nuage, ACL service etc", "SOURCE_CONTROL": "SCM system, e.g. GIT, SVN"}, "name": "OwnershipSourceType", "namespace": "com.linkedin.pegasus2avro.common", "symbols": ["AUDIT", "DATABASE", "FILE_SYSTEM", "ISSUE_TRACKING_SYSTEM", "MANUAL", "SERVICE", "SOURCE_CONTROL", "OTHER"]}, "name": "type", "doc": "The type of the source"}, {"type": ["null", "string"], "name": "url", "default": null, "doc": "A reference URL for the source"}], "doc": "Source/provider of the ownership information"}], "name": "source", "default": null, "doc": "Source information for the ownership"}], "doc": "Ownership information"}}, "name": "owners", "doc": "List of owners of the entity."}, {"type": "com.linkedin.pegasus2avro.common.AuditStamp", "name": "lastModified", "doc": "Audit stamp containing who last modified the record and when."}], "doc": "Ownership information of an entity."}, {"type": "record", "name": "Status", "namespace": "com.linkedin.pegasus2avro.common", "fields": [{"type": "boolean", "name": "removed", "default": false, "doc": "whether the entity is removed or not"}], "doc": "The status metadata of an entity, e.g. dataset, metric, feature, etc."}, {"type": "record", "name": "SchemaMetadata", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"validate": {"strlen": {"max": 500, "min": 1}}, "type": "string", "name": "schemaName", "doc": "Schema name e.g. PageViewEvent, identity.Profile, ams.account_management_tracking"}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.DataPlatformUrn"}, "type": "string", "name": "platform", "doc": "Standardized platform urn where schema is defined. The data platform Urn (urn:li:platform:{platform_name})"}, {"type": "long", "name": "version", "doc": "Every change to SchemaMetadata in the resource results in a new version. Version is server assigned. This version is differ from platform native schema version."}, {"type": "com.linkedin.pegasus2avro.common.AuditStamp", "name": "created", "doc": "An AuditStamp corresponding to the creation of this resource/association/sub-resource"}, {"type": "com.linkedin.pegasus2avro.common.AuditStamp", "name": "lastModified", "doc": "An AuditStamp corresponding to the last modification of this resource/association/sub-resource. If no modification has happened since creation, lastModified should be the same as created"}, {"type": ["null", "com.linkedin.pegasus2avro.common.AuditStamp"], "name": "deleted", "default": null, "doc": "An AuditStamp corresponding to the deletion of this resource/association/sub-resource. Logically, deleted MUST have a later timestamp than creation. It may or may not have the same time as lastModified depending upon the resource/association/sub-resource semantics."}, {"java": {"class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"}, "type": ["null", "string"], "name": "dataset", "default": null, "doc": "Dataset this schema metadata is associated with."}, {"type": ["null", "string"], "name": "cluster", "default": null, "doc": "The cluster this schema metadata resides from"}, {"type": "string", "name": "hash", "doc": "the SHA1 hash of the schema content"}, {"type": [{"type": "record", "name": "EspressoSchema", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "documentSchema", "doc": "The native espresso document schema."}, {"type": "string", "name": "tableSchema", "doc": "The espresso table schema definition."}], "doc": "Schema text of an espresso table schema."}, {"type": "record", "name": "OracleDDL", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "tableSchema", "doc": "The native schema in the dataset\'s platform. This is a human readable (json blob) table schema."}], "doc": "Schema holder for oracle data definition language that describes an oracle table."}, {"type": "record", "name": "MySqlDDL", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "tableSchema", "doc": "The native schema in the dataset\'s platform. This is a human readable (json blob) table schema."}], "doc": "Schema holder for MySql data definition language that describes an MySql table."}, {"type": "record", "name": "PrestoDDL", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "rawSchema", "doc": "The raw schema in the dataset\'s platform. This includes the DDL and the columns extracted from DDL."}], "doc": "Schema holder for presto data definition language that describes a presto view."}, {"type": "record", "name": "KafkaSchema", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "documentSchema", "doc": "The native kafka document schema. This is a human readable avro document schema."}], "doc": "Schema holder for kafka schema."}, {"type": "record", "name": "BinaryJsonSchema", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "schema", "doc": "The native schema text for binary JSON file format."}], "doc": "Schema text of binary JSON schema."}, {"type": "record", "name": "OrcSchema", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "schema", "doc": "The native schema for ORC file format."}], "doc": "Schema text of an ORC schema."}, {"type": "record", "name": "Schemaless", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "The dataset has no specific schema associated with it"}, {"type": "record", "name": "KeyValueSchema", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "keySchema", "doc": "The raw schema for the key in the key-value store."}, {"type": "string", "name": "valueSchema", "doc": "The raw schema for the value in the key-value store."}], "doc": "Schema text of a key-value store schema."}, {"type": "record", "name": "OtherSchema", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "rawSchema", "doc": "The native schema in the dataset\'s platform."}], "doc": "Schema holder for undefined schema types."}], "name": "platformSchema", "doc": "The native schema in the dataset\'s platform."}, {"type": {"type": "array", "items": {"type": "record", "name": "SchemaField", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "fieldPath", "doc": "Flattened name of the field. Field is computed from jsonPath field. For data translation rules refer to wiki page above."}, {"type": ["null", "string"], "name": "jsonPath", "default": null, "doc": "Flattened name of a field in JSON Path notation."}, {"type": "boolean", "name": "nullable", "default": false, "doc": "Indicates if this field is optional or nullable"}, {"type": ["null", "string"], "name": "description", "default": null, "doc": "Description"}, {"type": {"type": "record", "name": "SchemaFieldDataType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": [{"type": "record", "name": "BooleanType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Boolean field type."}, {"type": "record", "name": "FixedType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Fixed field type."}, {"type": "record", "name": "StringType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "String field type."}, {"type": "record", "name": "BytesType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Bytes field type."}, {"type": "record", "name": "NumberType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Number data type: long, integer, short, etc.."}, {"type": "record", "name": "EnumType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Enum field type."}, {"type": "record", "name": "NullType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Null field type."}, {"type": "record", "name": "MapType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": ["null", "string"], "name": "keyType", "default": null, "doc": "Key type in a map"}, {"type": ["null", "string"], "name": "valueType", "default": null, "doc": "Type of the value in a map"}], "doc": "Map field type."}, {"type": "record", "name": "ArrayType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": ["null", {"type": "array", "items": "string"}], "name": "nestedType", "default": null, "doc": "List of types this array holds."}], "doc": "Array field type."}, {"type": "record", "name": "UnionType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": ["null", {"type": "array", "items": "string"}], "name": "nestedTypes", "default": null, "doc": "List of types in union type."}], "doc": "Union field type."}, {"type": "record", "name": "RecordType", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [], "doc": "Record field type."}], "name": "type", "doc": "Data platform specific types"}], "doc": "Schema field data types"}, "name": "type", "doc": "Platform independent field type of the field."}, {"type": "string", "name": "nativeDataType", "doc": "The native type of the field in the dataset\'s platform as declared by platform schema."}, {"type": "boolean", "name": "recursive", "default": false, "doc": "There are use cases when a field in type B references type A. A field in A references field of type B. In such cases, we will mark the first field as recursive."}], "doc": "SchemaField to describe metadata related to dataset schema. Schema normalization rules: http://go/tms-schema"}}, "name": "fields", "doc": "Client provided a list of fields from document schema."}, {"type": ["null", {"type": "array", "items": "string"}], "name": "primaryKeys", "default": null, "doc": "Client provided list of fields that define primary keys to access record. Field order defines hierarchical espresso keys. Empty lists indicates absence of primary key access patter. Value is a<EMAIL_ADDRESS>{"type": ["null", {"type": "map", "values": {"type": "record", "name": "ForeignKeySpec", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": [{"type": "record", "name": "DatasetFieldForeignKey", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"java": {"class": "com.linkedin.pegasus2avro.common.urn.DatasetUrn"}, "type": "string", "name": "parentDataset", "doc": "dataset that stores the resource."}, {"type": {"type": "array", "items": "string"}, "name": "currentFieldPaths", "doc": "List of fields in hosting(current) SchemaMetadata that conform a foreign key. List can contain a single entry or multiple entries if several entries in hosting schema conform a foreign key in a single parent dataset."}, {"type": "string", "name": "parentField", "doc": "SchemaField@fieldPath that uniquely identify field in parent dataset that this field references."}], "doc": "For non-urn based foregin keys."}, {"type": "record", "name": "UrnForeignKey", "namespace": "com.linkedin.pegasus2avro.schema", "fields": [{"type": "string", "name": "currentFieldPath", "doc": "Field in hosting(current) SchemaMetadata."}], "doc": "If SchemaMetadata fields make any external references and references are of type com.linkeidn.common.Urn or any children, this models can be used to mark it."}], "name": "foreignKey", "doc": "Foreign key definition in metadata schema."}], "doc": "Description of a foreign key in a schema."}}], "name": "foreignKeysSpecs", "default": null, "doc": "Map captures all the references schema makes to external datasets. Map key is ForeignKeySpecName typeref."}], "doc": "SchemaMetadata to describe metadata related to store schema"}]}, "name": "aspects", "doc": "The list of metadata aspects associated with the dataset. Depending on the use case, this can either be all, or a selection, of supported aspects."}], "doc": "A metadata snapshot for a specific dataset entity."}], "name": "proposedSnapshot", "doc": "Snapshot of the proposed metadata change. Include only the aspects affected by the change in the snapshot."}, {"type": ["null"], "name": "proposedDelta", "default": null, "doc": "Delta of the proposed metadata partial update."}], "doc": "Kafka event for proposing a metadata change for an entity. A corresponding MetadataAuditEvent is emitted when the change is accepted and committed, otherwise a FailedMetadataChangeEvent will be emitted instead."}'}, 'fields': [{'fieldPath': '', 'description': '', 'nativeDataType': 'string', 'type': {'type': {'com.linkedin.pegasus2avro.schema.StringType': {}}}}]}]}), 'proposedDelta': None} has been successfully produced!
Schema not found:404
topic-trans-value

{'auditHeader': None, 'proposedSnapshot': ('com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot', {'urn': 'urn:li:dataset:(urn:li:dataPlatform:kafka,topic-trans,PROD)', 'aspects': [{'schemaName': 'topic-trans', 'platform': 'urn:li:dataPlatform:kafka', 'version': 1, 'created': {'time':<PHONE_NUMBER>.279111, 'actor': 'urn:li:corpuser:'}, 'lastModified': {'time':<PHONE_NUMBER>.279111, 'actor': 'urn:li:corpuser:'}, 'hash': '', 'platformSchema': {'documentSchema': 'None'}, 'fields': [{'fieldPath': '', 'description': '', 'nativeDataType': 'string', 'type': {'type': {'com.linkedin.pegasus2avro.schema.StringType': {}}}}]}]}), 'proposedDelta': None} has been successfully produced!
Schema not found:404
flink-test-value

{'auditHeader': None, 'proposedSnapshot': ('com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot', {'urn': 'urn:li:dataset:(urn:li:dataPlatform:kafka,flink-test,PROD)', 'aspects': [{'schemaName': 'flink-test', 'platform': 'urn:li:dataPlatform:kafka', 'version': 1, 'created': {'time':<PHONE_NUMBER>.313022, 'actor': 'urn:li:corpuser:'}, 'lastModified': {'time':<PHONE_NUMBER>.313022, 'actor': 'urn:li:corpuser:'}, 'hash': '', 'platformSchema': {'documentSchema': 'None'}, 'fields': [{'fieldPath': '', 'description': '', 'nativeDataType': 'string', 'type': {'type': {'com.linkedin.pegasus2avro.schema.StringType': {}}}}]}]}), 'proposedDelta': None} has been successfully produced!

But in docker log throws Exception. I was imported the sample data yesterday. It looks normal on the page.
My topic: flink-test-value and topic-trans-value
The topic of sample data is normal, but my topic seems to import failure.
schema-registry         | [2020-06-03 08:05:10,200] INFO <IP_ADDRESS> - - [03/Jun/2020:08:05:10 +0000] "GET /subjects/MetadataChangeEvent-value/versions/latest HTTP/1.1" 200 5823  12 (io.confluent.rest-utils.requests)
schema-registry         | [2020-06-03 08:05:10,271] INFO <IP_ADDRESS> - - [03/Jun/2020:08:05:10 +0000] "POST /subjects/MetadataChangeEvent-value/versions HTTP/1.1" 200 10  10 (io.confluent.rest-utils.requests)
schema-registry         | [2020-06-03 08:05:11,277] ERROR Request Failed with exception  (io.confluent.rest.exceptions.DebuggableExceptionMapper)
schema-registry         | io.confluent.rest.exceptions.RestNotFoundException: Subject not found.
schema-registry         | 	at io.confluent.kafka.schemaregistry.rest.exceptions.Errors.subjectNotFoundException(Errors.java:51)
schema-registry         | 	at io.confluent.kafka.schemaregistry.storage.KafkaSchemaRegistry.validateAndGetSchema(KafkaSchemaRegistry.java:748)
schema-registry         | 	at io.confluent.kafka.schemaregistry.rest.resources.SubjectVersionsResource.getSchemaByVersion(SubjectVersionsResource.java:106)
schema-registry         | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
schema-registry         | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
schema-registry         | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
schema-registry         | 	at java.lang.reflect.Method.invoke(Method.java:498)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
schema-registry         | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
schema-registry         | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
schema-registry         | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
schema-registry         | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
schema-registry         | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
schema-registry         | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
schema-registry         | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
schema-registry         | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
schema-registry         | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
schema-registry         | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
schema-registry         | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
schema-registry         | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:679)
schema-registry         | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:392)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.serviceImpl(ServletContainer.java:385)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:560)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:501)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:438)
schema-registry         | 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1591)
schema-registry         | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
schema-registry         | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
schema-registry         | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
schema-registry         | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
schema-registry         | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
schema-registry         | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
schema-registry         | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
schema-registry         | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
schema-registry         | 	at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
schema-registry         | 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
schema-registry         | 	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
schema-registry         | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
schema-registry         | 	at org.eclipse.jetty.server.Server.handle(Server.java:494)
schema-registry         | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
schema-registry         | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
schema-registry         | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
schema-registry         | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
schema-registry         | 	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
schema-registry         | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
schema-registry         | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
schema-registry         | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
schema-registry         | 	at java.lang.Thread.run(Thread.java:748)
schema-registry         | [2020-06-03 08:05:11,281] INFO <IP_ADDRESS> - - [03/Jun/2020:08:05:11 +0000] "GET /subjects/topic-trans-value/versions/latest HTTP/1.1" 404 51  6 (io.confluent.rest-utils.requests)
schema-registry         | [2020-06-03 08:05:11,316] INFO <IP_ADDRESS> - - [03/Jun/2020:08:05:11 +0000] "POST /subjects/MetadataChangeEvent-value/versions HTTP/1.1" 200 10  19 (io.confluent.rest-utils.requests)
schema-registry         | [2020-06-03 08:05:12,303] ERROR Request Failed with exception  (io.confluent.rest.exceptions.DebuggableExceptionMapper)
schema-registry         | io.confluent.rest.exceptions.RestNotFoundException: Subject not found.
schema-registry         | 	at io.confluent.kafka.schemaregistry.rest.exceptions.Errors.subjectNotFoundException(Errors.java:51)
schema-registry         | 	at io.confluent.kafka.schemaregistry.storage.KafkaSchemaRegistry.validateAndGetSchema(KafkaSchemaRegistry.java:748)
schema-registry         | 	at io.confluent.kafka.schemaregistry.rest.resources.SubjectVersionsResource.getSchemaByVersion(SubjectVersionsResource.java:106)
schema-registry         | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
schema-registry         | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
schema-registry         | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
schema-registry         | 	at java.lang.reflect.Method.invoke(Method.java:498)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
schema-registry         | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
schema-registry         | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
schema-registry         | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
schema-registry         | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
schema-registry         | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
schema-registry         | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
schema-registry         | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
schema-registry         | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
schema-registry         | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
schema-registry         | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
schema-registry         | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
schema-registry         | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
schema-registry         | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:679)
schema-registry         | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:392)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.serviceImpl(ServletContainer.java:385)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:560)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:501)
schema-registry         | 	at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:438)
schema-registry         | 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1591)
schema-registry         | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
schema-registry         | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
schema-registry         | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
schema-registry         | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
schema-registry         | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
schema-registry         | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
schema-registry         | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
schema-registry         | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
schema-registry         | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
schema-registry         | 	at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
schema-registry         | 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
schema-registry         | 	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
schema-registry         | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
schema-registry         | 	at org.eclipse.jetty.server.Server.handle(Server.java:494)
schema-registry         | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
schema-registry         | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
schema-registry         | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
schema-registry         | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
schema-registry         | 	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
schema-registry         | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
schema-registry         | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
schema-registry         | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
schema-registry         | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
schema-registry         | 	at java.lang.Thread.run(Thread.java:748)
schema-registry         | [2020-06-03 08:05:12,317] INFO <IP_ADDRESS> - - [03/Jun/2020:08:05:12 +0000] "GET /subjects/flink-test-value/versions/latest HTTP/1.1" 404 51  16 (io.confluent.rest-utils.requests)
schema-registry         | [2020-06-03 08:05:12,497] INFO <IP_ADDRESS> - - [03/Jun/2020:08:05:12 +0000] "POST /subjects/MetadataChangeEvent-value/versions HTTP/1.1" 200 10  159 (io.confluent.rest-utils.requests)

You also need to build the mxe-schemas module as below.
./gradlew :metadata-events:mxe-schemas:build

Build the schema project as well. It contains the missing schema.


P27

typo in the statement
The reason why $evalAsync is often preferrable to a $timeout
should be 'preferable'

Fixed, thanks!


Don't display() spurious newlines in jupyter

Fixes #3274
I couldn't think of a way to test the "real" behavior that we are looking for, which is "are random newlines appearing in jupyter's output?", so I had to settle for the proxy of "is ipython's display() ever called?".
I materialized the Iterable[Segment]s into a list, IDK if there are some performance concerns with this (we're about to materialize them all to strings anyway???). If so then I could come up with a less-clean way of checking for "did we get passed nothing")
Type of changes

[x] Bug fix
[ ] New feature
[ ] Documentation / docstrings
[x] Tests
[ ] Other

Checklist

[ ] I've run the latest black with default args on new code.
[ ] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[x] I've added tests for new code.
[x] I accept that @willmcgugan may be pedantic in the code review.

@huzecong does this look like it solves your issue you described in #3274 ?
@willmcgugan friendly ping here, I realize you must have a lot on your plate, but think this should be a fairly easy review. Thank you!

Hey @NickCrews, thanks for putting up this PR! This looks good to me and should solve the issue in #3274.

I materialized the Iterable[Segment]s into a list, IDK if there are some performance concerns with this (we're about to materialize them all to strings anyway???).

This seems reasonable to me too, but I'm no expert in this project and will leave it to the maintainers. One thing I'd like to mention is that our in-house patch only checked if not text, and that was sufficient for us. So if you're concerned about the list conversion, you might want to consider just dropping the check on segments.


Removing duplicate line

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Good catch! Thanks @marsrobertson 🙏


Unable to build form with submit button from HTML

This may be intentional as I seem to remember there being some issues with submit buttons in shiny for R.
My use case was just a simple form POST with action attached, and I expected this to work:
from shiny import App, ui
from htmltools import HTML

app_ui = ui.page_auto(
    ui.h2("Login"),
    HTML(
        """
         <form action="/api/auth/web/login" method="POST">
            <input type="email" id="username" name="username">
            <input type="password" id="password" name="password">
            <button type="submit" class="btn btn-primary">Login</button>
        </form>
        """
    ),
)

def server(input, output, session):
    pass

app = App(app_ui, server)

Nothing happens when the button is clicked, and I can't find the cause. A pure HTML file seems to work fine:
<!DOCTYPE html>
<html>
    <body>
        <form action="/api/auth/web/login" method="POST">
            <input type="email" id="username" name="username">
            <input type="password" id="password" name="password">
            <button type="submit" class="btn btn-primary">Login</button>
        </form>
    </body>
</html>

After looking further into this, I realize this may be the intended behavior:
https://github.com/rstudio/shiny/blob/501b012b2b82c0c468dc921ff0a3d9a682c20623/srcts/src/shiny/index.ts#L179-L192
For anyone stumbling on this, you can override the "inputsDefer"-behavior for submit buttons with some javascript:
document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('loginSubmit').addEventListener('click', function(event) {
        document.getElementById('loginForm').submit();
    });
});

So the following works:
from shiny import App, ui
from htmltools import HTML

# JavaScript to handle form submission via button click
# Overrides https://github.com/rstudio/shiny/blob/501b012b2b82c0c468dc921ff0a3d9a682c20623/srcts/src/shiny/index.ts#L179-L192
js = """
document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('loginSubmit').addEventListener('click', function(event) {
        document.getElementById('loginForm').submit();
    });
});
"""

app_ui = ui.page_auto(
    ui.h2("Login"),
    ui.head_content(ui.tags.script(js)),
    HTML(
        """
        <form action="/api/auth/web/login" method="POST" id="loginForm">
            <input type="email" id="username" name="username">
            <input type="password" id="password" name="password">
            <button type="button" class="btn btn-primary" id="loginSubmit">Login</button>
        </form>
        """
    ),
)

def server(input, output, session):
    pass

app = App(app_ui, server)

I am currently experimenting with combining FastAPI and Shiny. In my specific case, the FastAPI endpoint /api/auth/web/login sets a cookie upon successful authentication which gates access to another shiny app. This simple login app could of course be a static page, but I tried to quickly mock something up with shiny. Curious to hear if anyone has advice on a better approach. Otherwise, feel free to close this issue.


Stop downloading existing Bazel binaries

Due to a bug Bazelisk never read any binaries from the cache, thus resulting in severe runtime penalties.

Tobi and I both noticed this when running the imported version (since our internal mirror seems to be way slower than GCS). I tested it with --version only, though. The cached binary was always overwritten.

Internal investigations have revealed that determining the latest Bazel version also takes a significant amount of time - maybe we should cache the version history in general (similar to the GitHub release JSON data).
I don't think it hurts to keep this PR, though

Filed https://github.com/bazelbuild/bazelisk/issues/442 for the caching FR.


fd:Executable not found

Hi, I've tried to install this plugin but whenever I enter :Telescope media_files cmd it gives me this error
[telescope] [WARN  16:51:08] /home/$USER/.local/share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:489: Finder failed with msg:  ...local/share/nvim/lazy/telescope.nvim/lua/telescope/_.lua:297: fd: Executable not found
[telescope] stack traceback:
[telescope] ^I...local/share/nvim/lazy/telescope.nvim/lua/telescope/_.lua:297: in function 'convert_opts'
[telescope] ^I...local/share/nvim/lazy/telescope.nvim/lua/telescope/_.lua:17: in function 'new'
[telescope] ^I...local/share/nvim/lazy/telescope.nvim/lua/telescope/_.lua:63: in function 'spawn'
[telescope] ^I...cope.nvim/lua/telescope/finders/async_oneshot_finder.lua:48: in function 'finder'
[telescope] ^I...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:485: in function <...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:484>
[telescope] ^I[C]: in function 'pcall'
[telescope] ^I...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:484: in function <...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:450>
Press ENTER or type command to continue

Not an expert, but do you have this package installed?
https://github.com/sharkdp/fdhttps://github.com/sharkdp/fd
if so make sure its reachable via the command
which fd
if not then you have to add it to your $PATH or environment variables

Thanks for the response man, but the I got the problem, I was loading the extension in the setup itself, which resulted in this error. Closing this issue


Issue with www.vrt.be

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.03.20. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2018.03.20

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-F', u'-u', u'PRIVATE', u'-p', u'PRIVATE', u'--verbose', u'https://www.vrt.be/vrtnu/a-z/de-afspraak/2018/de-afspraak-d20180305.ch.f544880f-1b2d-418f-90c5-a8fd4c9177b3/']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.03.20
[debug] Python version 2.7.10 (CPython) - Darwin-17.4.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 3.3.4, ffprobe 3.3.4
[debug] Proxy map: {}
[VrtNU] Logging in
[VrtNU] Requesting a token
[VrtNU] de-afspraak-d20180305.ch.f544880f-1b2d-418f-90c5-a8fd4c9177b3: Downloading webpage
[VrtNU] de-afspraak-d20180305.ch.f544880f-1b2d-418f-90c5-a8fd4c9177b3: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 500: Internal Server Error (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 519, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2199, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 437, in open
response = meth(req, response)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 550, in http_response
'http', request, response, code, msg, hdrs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 475, in error
return self._call_chain(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 558, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

Description of your issue, suggested solution and other information
I hope that the log explains what is going on.
The sites needs a user and password in order to log in and watch video. Let me know if you cannot obtain a login, and I will pass on my credentials.

The alternative url for this episode https://www.vrt.be/vrtnu/a-z/de-afspraak/2018/de-afspraak-d20180305/ does seem to work (obtained by switching episodes).

No longer available.


Player tentacle movement

 Player tentacle + wall movement

Is this a valid scenario when the user tries to move using his tentacle then it will rotates its y-axis due to collision to the wall?

Nope, it isn't normal, will fix it


Produce new screenshots.

And replace all the existing ones.

@pidster there are 2 screenshots on the main page of the microservices-demo website. Can you provide more details?

Updated images are needed to reflect changes to the Scope UI


Create ar.txt

Add Agricultural University of Wroclaw to database

@WhereIsMySnake Could you please give us a link to a page saying that ar.wroclaw.pl domain is for students email only? All contact emails at the official website are in up.wroc.pl domain, which is different, see for example http://www.rekrutacja.up.wroc.pl/studia/71628/bioinformatyka.html and http://www.rekrutacja.up.wroc.pl/kontakt/
Official website also redirects from ar.wroc.pl to up.wroc.pl.

@philipto yes, official web is up.wroc.pl and students mail is *poczta.student.up.wroc.pl as you can see here: https://www.student.up.wroc.pl/instrukcja.html. Unfortunately there is no english version.

@WhereIsMySnake If student email domain is poczta.student.up.wroc.pl, the file representing it in this repository shall be lib/domains/pl/wroc/up/student/poczta.txt, not lib/domains/pl/wroclaw/ar.txt. Could you please double check the email domain and change the file path accordingly?

Thanks for clarification. I will change it to right repo.

@WhereIsMySnake I have to close this request without merging because it remains unanswered for a while, and I see no new requests or changes for the domain which we discussed in this conversation. Thank you for your understanding!


Undefined method of a CoroutineMock instance returns MagicMock instead of CoroutineMock

To reproduce:
x = CoroutineMock()
print(type(x.some_method))

In version 0.10.1:
<class 'asynctest.mock.CoroutineMock'>
In version 0.11.0:
<class 'asynctest.mock.MagicMock'>
This causes an unexpected breakage in existing tests.  Is there any way to get the old behavior back?

Hi,
I'll look at why this behavior changed. However, I'm not sure you're using CoroutineMock the way I imagined: CoroutineMock is made to mock a coroutine function, but it seems that you're using it to mock an object.
If you want to mock, say:
class Foo:
   async def my_coro(): pass

you should do:
 foo_mock = asynctest.mock.MagicMock(Foo)

which will detect that my_coro() must be mocked as a CoroutineMock.
If you don't want to specify "Foo" as the spec, you will need something like:
x.some_method.is_coroutine = True

I never intended CoroutineMock to be a way to mock an object for which all attributes are coroutine functions, but that doesn't mean it's not a good idea. I'll think about it.

You're right - I had been using CoroutineMock as an all-around replacement for MagicMock with an async context, including for objects with async methods, but the naming and your suggestions make sense.  It looks as though I've been relying on undefined behavior.

I'm using CoroutineMock to patch out a coroutine, awaiting it, then asserting that it has been called. Here's an example.
This has broken since 0.11.0.

You're doing the same thing: you're testing the object which has the attributes put() and get() which are the coroutines.
I'm a bit concerned because it's seems to be a quite common practice but I'm not sure it's a good one.
I'll try to revert to the old behavior but I feel like I should create a proper API for this case (children members of a mock being CoroutineMock by default) and warn about using attributes of a CoroutineMock.
Maybe something like Mock(attributes_are_coroutines=True) or something similar.

If you don't think it's a good practice I'm totally open to doing it
differently. I could just do with some pointers in the right direction.
The thing I've struggled with most in testing asyncio code is the lack of
docs. More examples of best practice would be really useful.
On Tue, 24 Oct 2017 at 17:23, Martin Richard<EMAIL_ADDRESS>wrote:

You're doing the same thing: you're testing the object which has the
attributes put() and get() which are the coroutines.
I'm a bit concerned because it's seems to be a quite common practice but
I'm not sure it's a good one.
I'll try to revert to the old behavior but I feel like I should create a
proper API for this case (children members of a mock being CoroutineMock by
default) and warn about using attributes of a CoroutineMock.
Maybe something like Mock(attributes_are_coroutines=True) or something
similar.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Martiusweb/asynctest/issues/52#issuecomment-339048382,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABiUYgY0mE4PrCWeitw6VW5aHwb7ADSRks5svg7igaJpZM4QDDGc
.

In your case, I would have written your example this way:
    memory = self.setup()
    memory.databases = [mock.MagicMock()]
    memory.databases[0].get = CoroutineMock()
    memory.databases[0].put = CoroutineMock()
    data = "Hello world!"

but a convenient way to specify that the attributes of the MagicMock should all be coroutines mocks can be useful.
You're right about the documentation and examples, I'll try to work on this too.

Awesome thanks 👍