Tests: add tests for prisma format cli command

https://github.com/prisma/prisma/blob/master/src/packages/cli/src/Format.ts could use some tests

hey @Jolg42 I will love to work on this.

@Iamshankhadeep Sure! Thanks!
So actually a test is already here
https://github.com/prisma/prisma/blob/fc68127b51c5d51684211978b057a019569051a9/src/packages/cli/src/__tests__/format.test.ts
So it could be improved with more tests on different schemas:
Like these maybe, they can be added to this folder https://github.com/prisma/prisma/tree/fc68127b51c5d51684211978b057a019569051a9/src/packages/cli/src/tests/fixtures/example-project/prisma
missing-backrelation.prisma
generator client {
  provider = "prisma-client-js"
  output   = "../generated/client"
}

datasource db {
  provider = "sqlite"
  url      = "file:dev.db"
}

model Post {
  id     Int @id
  user   User
}

model User {
  id     Int @id
  posts  Post[]
}

@do4gr any other schema we could test for?
It could also be interesting to test for broken schemas like this and expect an error
broken.prisma
this is a broken schema

I could also see a big/complex schema test like copied from https://github.com/prisma/prisma/blob/fc68127b51c5d51684211978b057a019569051a9/src/packages/migrate/src/tests/fixtures/nativeTypes-postgresql/prisma/schema.prisma
maybe named native-types-postgresql.prisma


Zwave crash on startup after upgrade

Home Assistant release (hass --version):
0.19.4
Python release (python3 --version):
Python 3.4.2
Component/platform:
Zwave/Debian Jessie
Description of problem:
Zwave crashing on startup
Expected:
Zwave starting
Problem-relevant configuration.yaml entries and steps to reproduce:
zwave:
  usb_path: /dev/zwave-aeon-s2
  config_path: /usr/local/share/python-openzwave/config

Traceback (if applicable):
16-05-11 11:14:19 homeassistant.bootstrap: Error during setup of component zwave
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/bootstrap.py", line
 157, in _setup_component
    if not component.setup(hass, config):
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/zwave.py
", line 211, in setup
    default_zwave_config_path),)
  File "/usr/local/lib/python3.4/dist-packages/python_openzwave_api-0.2.6-py3.4.
egg/openzwave/option.py", line 90, in __init__
    self._cmd_line.encode("UTF-8"))
TypeError: Argument 'a' has incorrect type (expected str, got bytes)

Additional info:
This started after upgrading from 0.19.0/1 -> 0.19.2.  Same issue with 0.19.4
similar to issue https://github.com/home-assistant/home-assistant/issues/1544 ?
Followed instructions from https://home-assistant.io/components/zwave/ to try and rebuild.

I figured it out.  After reading the issue https://github.com/home-assistant/home-assistant/issues/1544 a little more carefully, I found that I did indeed have an old version of python-openzwave installed. Running these commands fixed my issue:
pip3 list
sudo pip3 uninstall python-openzwave-api
sudo pip3 uninstall python-openzwave-lib


Settings

Description
This PR is an opportunity to discuss how a persistent settings/preferences framework would look in napari, and also an initial example of a few things implemented with QSettings.  One of the immediate things that has always bothered me is that the window geometry is not preserved across sessions, so you have to resize and move every time if you'd like to have it arranged a particular way.  As an initial example, this PR retains the window size/position, and state/position of the dockwidgets across sessions.  It also auto-generates a preferences window with type-appropriate widgets that update the settings immediately upon being clicked.
@jni said here that he's not sure he wants to use QSettings, and I definitely get that.  But it actually implements quite a lot of good behavior in a native cross-platform way (e.g. plist files in the OSX ~/Library/Preferences, registry keys in Windows, gsettings in linux) that befits a full-fledged application in a way would be a bit laborious to implement natively using something like dotfiles in the home directory or environmental variables.  However, this by no means precludes those options (they could all be used together even), and we could certainly change the persistence layer in this PR later, using perhaps appdirs, with json/yml/xml, maybe shelve, or any other suggestions that people have.  It doesn't seem terrible to me to use QSettings inasmuch as the setting relates specifically to the GUI (where we would never not use Qt).  But I do also think some ~/.napari/config style config file might be useful for non-gui settings that may arise later.

Type of change

[x] New feature (non-breaking change which adds functionality)

References
https://doc.qt.io/qt-5/qsettings.html
https://github.com/ActiveState/appdirs
How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

This is very nice @tlambert03. I've not used or explored the QSettings much, so if the following comments seem misguided / reflect some misunderstanding please point them out, but I think I may favour a hybrid approach were we have all our settings as a JSON like representation, so
{'default_play_speed': 20, 'preserve_window_state': True}

And this could be introspected and manipulated independently of Qt and live at least in code / memory outside of our _qt folder (i.e. maybe in components, like any of our other model files). If we then decide to leverage the QSettings to do the fileIO / handling of paths etc. that seems fine with me, because if we decided to drop Qt one day we'd still be able to preserve the JSON representation. We could also provide some convenience methods so someone could update settings from JSON inside the app, or save to JSON from the app (i.e. maybe you have one settings you use with 3D cryoEM data and on settings you use with 2D static images and you save them to different files).
Again not sure how much of this makes sense / is possible now, but I think having some separation for the model like representation of settings seems valuable even if we use Qt machinery for IO. I think @royerloic would approve of that approach ;-). Curious if this is similar to how @jni imagines it too

if the following comments seem misguided / reflect some misunderstanding please point them out, but I think I may favour a hybrid approach were we have all our settings as a JSON like representation, so
{'default_play_speed': 20, 'preserve_window_state': True}

not misguided or misunderstood at all!  We can definitely do something like that.  In terms of the actual representation on disk, I generally prefer the simple JSON file as well.  QSettings mostly brings "higher level" stuff to the table like logic for choosing where to put settings in a platform-specific way.  It is integrated into the event loop, periodically synchronizing changes made to the QSettings object with the disk representation. It is also reentrant, allowing for access across multiple threads.  It also has a nice concept of settings groups, which could be useful as the number of settings grows, or with plugins.  We can absolutely implement some or all of that functionality ourselves, without relying on QSettings...  it just requires a little extra doing...

I think having some separation for the model like representation of settings seems valuable even if we use Qt machinery for IO.

no problem.  The model itself is pretty much just a dict in this case.  QSettings, just provides methods for interacting with the dict, synchronizing to disk, and integrating into the event loop.
I'm working on a Qt-free version and will update shortly

well, as usual, when I spend some time implementing your suggestions, I end up liking it much better 😊.  I now have a Qt-independent Settings class that behaves much like a dict (inherits from abc.MutableMapping), and a start to a API for how one would "register" settings and persistence models.  You can have a look through the changes... and I'll try to give an overview here (trying, but likely failing, to be brief):

The main settings object lives at napari.settings.Settings, and currently is instantiated as a singleton available at napari.settings.SETTINGS.  It behaves like a dict.  It has some conveniences like autosync=True, which will synchronize the settings to disc immediately whenever changed.

The persistence layer is handled by setting Settings.format, which expects a 3-tuple of (extension, readfunc, writefunc)... where the functions handle reading and writing the settings to disk.  We can swap that out easily if we want to, and an example/default JSON backend can be seen at napari.utils.settings_formats.json... (Note, that file highlights some of the challenges different backends will face with serialization, and there is an example of how to handle something like Enums)

I use appdirs to get platform-specific folders, but vendor it because they don't seem to have released an update in over 2 years, despite a lot of commits to master.

While any user can simply set some key/value pairs in the SETTINGS instance, one thing I particularly like is the Settings.register_setting method, which allows us (and eventually plugin developers), to register a setting key, along with a description, a default value, a dtype (which will be gleaned from default if not provided), and a callback that will be called whenever it changes. Registered settings appear in the main GUI preferences window at _qt.qt_preferences.PreferencesWindow, with type-appropriate widgets (from _qt.auto_widget)

Simple settings that appear as SettingTuples at the top of napari.settings will be automatically registered ... but a more complex example of register_setting that mimics what a plugin developer might do can be seen in the ViewerModel, where I register theme options.  Because the default value is provided as an Enum, the preferences window shows a QComboBox with all of the options, and because a callback is provided, changing that combo box immediately updates the theme (and persists it across sessions):

two features that would be nice to implement:

settings "groups":  QSettings has a concept of groups that prefixes settings keys with a groupname, and something like an enter_group/leave_group context manager would let related settings (like for a plugin) be grouped under a nested key conveniently.
the current model is not reentrant, and assumes there is only one process using the preferences file, and each time it writes it clobbers the file.  If we think it would be useful, I can improve the Settings.sync method to keep track of updatedKeys, removedKeys, etc... to actually synchronize with some external settings (knowing who has changed in the meantime).

current problems:

the singleton SETTINGS approach might need to be modified, as it can lead to unexpected behavior when multiple viewers are instantiated.  While some settings truly are global, others might not be... so we might need multiple Settings instances within a session.
serialization of non-standard types remains a sticking point.  As it stands, it's mostly up to the plugin developer to make sure that their value is serializable... so we minimally need to handle errors gracefully.

Very nice @tlambert03 !
@sofroniewn wrote:

Again not sure how much of this makes sense / is possible now, but I think having some separation for the model like representation of settings seems valuable even if we use Qt machinery for IO. I think @royerloic would approve of that approach ;-). Curious if this is similar to how @jni imagines it too
--> Indeed, I think separation of the settings model from its view and control will be key, happy to see that @tlambert03 has gone towards that design.

A few thoughts:
i) @tlambert03 I agree that a SETTINGS singleton is going to bite us eventually, global settings often end up being a 'pita'... as there will be a time when they need to be local... or viewer specific. I am not sure what the right approach should be here. Perhaps, settings should be instantiated per viewer based on a 'global' template, saving the settings to global would need to be done explicitly -- in that case only the global setting object is synced to disk.
ii)  Love the idea to use a context manager to group settings, very nice.

saving the settings to global would need to be done explicitly -- in that case only the global setting object is synced to disk.

:+1:

Love the idea to use a context manager to group settings, very nice.

Agreed! This is the approach taken for e.g. matplotlib styles and it works really nicely.
Sorry that this is a very quick pass-through response, but I thought I should share some quick thoughts even before my thinking fully crystallises here:

Over time I've come to much prefer yaml over JSON, principally because it allows comments and it is much easier to write by hand.
I agree that the features you've described from QSettings, specifically the native-style preferences storage, is very nice, but I very much like the sync proposed by @sofroniewn between model and view for the settings that are model-specific rather than gui-specific.
We have to be mindful of environments, profiles, etc. I can imagine that people might want significantly different settings when working from the bundled app vs from the command-line vs from IPython vs from scripts. We should have multiple "profiles" by default (either the four above or some subset of them that gets reused), and support changing profiles on the fly as well as creating custom profiles.
for plugin settings, we should require namespaces, to ensure that plugin settings don't clobber each other (or ours).

@tlambert03 do you think now is a good time to start revisiting this? We know have a better sense of how the plugin stuff is shaping up that could help.
It might also be nice to add a "high DPI" setting right away in this PR that people can use to manually fix #820. Just seeing napari out in the wild last week at Janelia hits home how common and annoying that bug is.
We could also add to this PR a concept of code that executes the very first time napari is launched on after install. There could be a hidden setting "first launch" that we keep track of, and that could do the high DPI check by creating a test QApp checking if high DPI is needed adjusting our setting and then destroying that QApp before creating the real one with the correct setting now in place.
The high DPI stuff can also happen in follow up PRs if you want to keep this one minimal

definitely!  I've mostly been waiting for others to feel like it's time to revisit it 😅
I frequently come across things that I feel could use persistence ...
I do think we should leave most of the settings out of this PR (like DPI), but perhaps we should start a new issue, kinda like the one tracking plugins, where people can dump ideas for things that they think should be made into settings.

definitely! I've mostly been waiting for others to feel like it's time to revisit it 😅

Great, I think now is that time, especially as we have a better view on plugins - which might want to be able to add settings (though that doesn't need to be enabled now)

I do think we should leave most of the settings out of this PR (like DPI), but perhaps we should start a new issue, kinda like the one tracking plugins, where people can dump ideas for things that they think should be made into settings.

Love it, can you make that issue, I'm happy to do so as well / contribute ideas to it too.
Let's keep this PR as minimal as possible


Improve on UI and styleguide

I rushed through when I first did the work to update the site. I want to take a little longer and improve the UI and utilize the space better

Home page updates:

About US page updates

I added a container around the homepage content, spaced things a little better in the footer and on the about us page I added some styling and elements to space things are a little better.

Two smaller notes.
We're mostly using HackGreenville as one word with both H and G capitalized.  There's some inconsistency on the homepage we could iron out while we're at it.
Code For Greenville is rebranding and ending at the end of this month.  We can rename "Code For Greenville" to "HackGreenville Labs" on the About page. Though, we should leave a note in there like '...nutured and expanded by the former Code For Greenville brigade. The site and underlying open data APIs are now supported by HackGreenville Labs to promote...
Also, we're planning to add a "Labs" page to the site, which will mostly highlight the HG supported projects as noted on this CFG site that's no longer active. https://hackgvl.github.io/codeforgreenville.github.io/

I made the changes and pushed them up, thanks @allella!


Return XHR object from save calls

Use case - tracking readyState of the call, or being able to abort it. Backbone already does this for model.save.


Update apps-form-builder.rst (update urls import)

Maybe tests will pass too after applying those suggestions; Python 3.6/3.7 are not compatible with Django's main branch anymore. I have updated the tox configuration to not include those combinations anymore.


Make Multiple changes with the UI

I'll make the header look cleaner and more uniform.

as you can see in the above 2 images the header doesn't look uniform.

I'll add good images and make it like a carousel.

cards look too congested

ill make this section look more neat and beautiful.

improve the Contact Us page and make it look more readable.
Assign me this task, and I'll make sure everything looks amazing!

for now we don't want any changes, as it is in updation, so i am closing this issue. please understand.


[question] Confidence Values

I've been using BiDAF for some time now, and I love the system! The only one question I've had is that I'm looking for a way to display a "confidence" or "score" for the answers it gives. Is that possible?
I've been looking into the source code for quite a while, but I'm unable to find out where that code may lie.
Thanks!

Never mind, https://github.com/webeng/bi-att-flow solved my problem. Thanks!


ImportError: cannot import name 'PALME' from 'rt2.experimental.rt2_palme'

Thanks for the great RT2. The setup is getting better with time. And yet to learn how to use it.
When I run the following command I get errors as follows:
$ python tests/test.py
Traceback (most recent call last):
 File "tests/test.py", line 3, in <module>
   from rt2.experimental.rt2_palme import PALME, RT2
ImportError: cannot import name 'PALME' from 'rt2.experimental.rt2_palme' (<path_to_env>/lib/python3.8/site-packages/rt2/experimental/rt2_palme.py)

How to find the correct PALME library?
the
$ pip install palme  installs. However, the error.

Using tag 0.0.3

Try this in that line:
from rt2.experimental.rt2_palme import PalmE, RT2

@rahuldeo2047 and @aakb101 Please excuse me for the issues, try again when you have a chance they might be fixed

@kyegomez and @aakb101 : Thanks for the pointer.
I now get following error:
$ python example.py
Traceback (most recent call last):
File "example.py", line 4, in
rt2 = RT2()
File "<@beartype(rt2.experimental.rt2_palme.RT2.init) at 0x7f541c16cee0>", line 41, in init
TypeError: init() missing 1 required keyword-only argument: 'palme'


Add GeocoderPipeline

Two things in this PR that are notable:

An initial stab at a GeocoderPipeline that will fill in the lat/long coordinates on events when they are missing.
Configuration for betamax, which records HTTP requests and saves them to tests/cassettes, which are then used to stub out network responses during future test runs. We can investigate using this in other places in the test suite where it would be useful.
(new) I stubbed out the network requests done by out task tests, so tests run much faster, are more reliable, and no longer depend upon having network access. I'm not a huge fan of passing around the requests.session as much as we are now (it feels like a missing object to me), but for now this is probably OK.

The code looks fine to me although I haven't worked with the geocoder or betamax packages before.
Is the purpose of using betamax and sessions so that the downloaded content is more standardized from run to run? I looks to me like session.get is still called every time the tests (_fetch_url) are run, so I'm not sure how this avoids needing an Internet (network?) connection.
I know that geocoders can sometimes be computationally costly / slow. Maybe we should check how long it takes this geocoder to geocode a batch of addresses.

@r-wei betamax has a neat behavior where the first time it runs, network requests are made as usual, but whatever responses are received are then saved to the disk. The next time the same request is made (usually when the test is run the next time), no new network requests are made. Instead, the recorded responses from the disk are played back in a way that looks to most of the code like they are real responses. In this way, you can test in a realistic way but not actually need a network connection. It also insulates the tests from server behavior, like we were seeing where sometimes the citybureau.org server would return a 429 response for no real reason.
The betamax docs probably explain this better than I do. In particular, this page gives a decent overview.
Most Ruby project I've worked on have used something similar to this to emulate network activity but keep tests deterministic. It seems to be a decent solution when there aren't other ways to mock out requests.

I should also mention that I did not spend any time thinking about which geocoding service we should use. The nice thing about the geocoder library is that it abstracts these details away, enabling us to switch service by just changing a method call or two.
I'm thinking of using the Mapbox API for this project since I know a little about their other tools, but I am in no way opposed to using a different one.

The code itself looks clean and nice.
I kind of avoided Betamax a few years ago (I think around the time it came out) because I found it a bit buggy and the interface too cute by half. But it seems pretty clearly the best solution for the job at this point, my curmudgeonly aesthetics aside.
As far as geocoding APIs, Google's is the best and it ain't even close. We'd have to pay for Mapbox, and while their service overall is splendid, it's definitely not a good value proposition for just geocoding. We used the Mapbox geocoder at NPR and had to give up and switch back to Google.
Still, I'm not clear that we're allowed to store addresses and lat/lngs from Google's geocoder under their terms of service. I did some research and found conflicting answers. I'm going to keep looking into this.
There's also a 2,500 per day limit on geocoding via Google's free offering. That should be fine but something to keep in mind for the current architecture of the thing. Leaving geocoding as a separate pipeline is wise, but if we start bumping up against limits and don't have resources (either in form of donated API access or cash money) to continue, we'll probably want to skip previously geocoded items, which means putting the geocoding more directly into the data storage pipeline(s).

It's still not clear to me whether storing geocoded addresses would violate the Google terms of service. On the one hand, addresses and lat/lngs are both facts (which you can't copyright) and mostly derived from public sources. On the other hand, Google seems pretty clear you can't store content from the maps API long term, so the question is whether lat/lng and address count as content. I think we're probably safe but want to be extra sure.
However, this provision is still around:

That's a problem for us unless our output involves a Google map, which I wouldn't want to require (worth asking @diaholliday but I can already guess his answer).
I've reached out to a contact at Google to see what they say. For now, I think we have to assume we'll need something else.

Other options I think could be viable:

Geocodio: Not currently supported by Python Geocoder. But we could fix that. They have a 2,500/day free plan. They also add political boundaries. There is a dedicated Python library, at least.
MapBox: Caveats from my experience apply. However, could be fine for what we need to do and a company that's continually improving their product. Their free version allows for 50k geocoder requests per month or about 1,666 per day.
Texas A&M geoservices: This thing is lovely and also more than a little clunky. The main downside of API is you have to split natural language addresses into street/city/state components. The other main downside is you have to sign up as a partner and continually re-up your allotment.

There's many others. I'm leaning towards Mapbox, though. I think it's accurate enough for our purposes even if not for geocoding a really messy batch of open data and I know folks over there if we do run into issues. Geocodio looks pretty damn compelling as well, minus the Python geocoder support.

Added #95; will implement mapbox for now and merge.

 Will try geocodio.

Also tried Geocodio, Mapquest, and Bing. Mapquest was the most accurate/robust for a random assortment of addresses I entered, though Bing and Mapquest were both close -- but none as good as Google at properly geolocating city hall, specifically. Bing and Geocodio did well with the address and poorly with "city hall" and vice versa for Mapquest.
The weirdest part is you put the address for city hall (121 n lasalle) into Bing's web ui and it nails it. You put the same address (after bing itself has corrected it) into their geocoder and you wind up with a lat/lng across the river.

What do we need geocoding for? Addresses will be enough for the documenters, right?

@r-wei there was discussion of mapping, which requires geocoding to get lat/lngs. If it was just addresses, we could just skip this step.
It should be pretty handy -- a Documenter using the central calendar could essentially tap the calendar item to get routing information if they're driving to an event.
But that's not really realistic if the coordinates take them several blocks away :/
I'm curious to see what Google says and, if they offer to let us use their data beyond what's laid out in their terms of service, to see if we want to take advantage of that.

Ah ok. Yes, I remember there was interest in mapping also to see where in the city most meetings were taking place, or to create other visualizations from this data (maybe during the hackathon).
If the central calendar is a google calendar, we could put the addresses into the location, and google's apps would take care of mapping.. just throwing out ideas.

The addresses-in-location-and-geocode-on-client-side has been running through my head as a potential option. Potentially has the benefit of using whatever mapping tool you like.
But you couldn't really do an interactive map with all events on the client side.

I was thinking about adding a cache to the geocoder (probably Redis) so we
would only ever lookup the coordinates for any address once. I wasn't sure
of the deployment plan, though, and didn't want to add additional external
dependencies until that was sorted out.
One possible need for having coordinates in the database is to enable a
geographic search for events within a certain distance of a location.

For the amount of data we need to cache, the file system might also be fine.

Mapzen Search is also a great option for geocoding that I personally have extensive experience:
https://mapzen.com/products/search/
It integrates a couple different sources of address data as well as venues from OSM. With a focus on the Chicago/Illinois region, you could easily zone in on addresses as well as places (such as 'Chicago City Hall').

@eads I'm going to try and set some time aside to look at this tomorrow and offer my two cents
Would you prefer comments here or in #95. Also I assume you'd prefer a seperate pull request from me if I have a contrib for geocoding, or should I try to comment on the code as is? I want to help effectively and not create a mess!

Ha, it's all a mess @easherma. Probably easiest just to talk about this in slack when you're available. I'm around all day.

stubbing out some thoughts here as I'm getting more familiar with the codebase

it does not appear that the scrapers all have consistent location of potential street address data.
in my opinion, a decent pipeline would be:

write out the scraped results as json or csv and make the sure the data is standardized
Prep a list of addresses and drop duplicates
geocode them, output the results and join/merge with scraped output create a final, appended output
we can do this all with flat files, could prototype with pandas and then write it out in more vanilla Python if we prefer.
we don't really need a relational DB IMO, especially at this stage. overall the data is small (looks like under 5 megs), and we're not planning on changing it much if at all once it is scrapped and structured. we could even parse them into markdown files and render a static site with little effort.

@eads @easherma @r-wei Were any decisions made regarding the direction to take here? I'm happy to  own this PR and get it ready for merging unless someone else is attached to it!

@jim hey! I got it in there, using MapZen's geocoder. Some cursory tests make me a little more confident in it the other non-Google geocoders. Of course, that could also be entirely wrong...
In all events, it's pretty much exactly what you had already written, but with mapzen. I also removed the one test until we can figure out how to get it to run on travis.
I'd love to sync up with you on this and pass off additional tasks. See #143 and #145.


pip release and tutorial problem

In the notebooks and examples, the codes are all using featureextractor.RadiomicsFeatureExtractor (e.g. This notebook). However, I installed via pip install pyradiomics (2.1.2 ver), and did the same thing, it throwed error saying AttributeError: module 'radiomics.featureextractor' has no attribute 'RadiomicsFeatureExtractor'. Then I go to the installed version, find that the actual class name is RadiomicsFeaturesExtractor. Here it is '...FeaturesExtr...' instead of '...FeatureExtr...'.

@HongyiR This is because of changes made in pr #481, which has been merged with the master. We changed the name from RadiomicsFeaturesExtractor to RadiomicsFeatureExtractor, to better reflect the name of the module (featureextractor).
I will try to make a new release today, so that the pip wheel also reflects this change. In the meantime, if you change the name in your notebook, it should work fine.


Implement triggers deploy command

What this PR solves / how to test
This PR implements the wrangler triggers deploy command behind the --experimental-versions flag.
I extracted the logic from wrangler deploy which I've now made call into the extracted function. The test coverage for wrangler deploy should cover wrangler triggers deploy.
The only difference this makes to wrangler deploy is:

~the log line "Published <worker-name> (<timing>)" is now "Deployed <worker-name> triggers (<timing>)"~ no longer different
and, instead of getting the value available_on_subdomain from the response of the PUT script call, it now makes an additional GET call to ".../subdomain" to get the value

~It is possible to mitigate these two differences but I don't think the log line change or minimal added latency necessitates it. But I'm open to others' opinions :)~ The only difference is the latency
CR: https://jira.cfdata.org/browse/CR-850334
Author has addressed the following

Tests

[ ] TODO (before merge)
[x] Included
[ ] Not necessary because:

Changeset (Changeset guidelines)

[ ] TODO (before merge)
[x] Included
[ ] Not necessary because:

Public documentation

[ ] TODO (before merge)
[x] Cloudflare docs PR(s): https://github.com/cloudflare/cloudflare-docs/pull/13429
[ ] Not necessary because:

for posterity, i am approving this PR -- the concerns raised are addressed in the linked PRs/commits, which themselves have been approved


Release of RenderDoc 0.24 interface corrupts RenderDoc state

QueryInterface for the RenderDoc interface is incorrectly implemented in RenderDoc 0.24, accidentally returning a pointer to a non-COM base of their object.
As such, invoking Release on the interface in D3D11 graphics debugging code results in corruption of RenderDoc state as an unrelated virtual member function is actually invoked. This manifests as an INVALID_CALL when creating the swap chain shortly afterward.
My temporary workaround was to leak the reference until RenderDoc is fixed, I have a pull request open with them.

:+1: I'll comment it out.

Upstream has merged my pull request into master now.
https://github.com/baldurk/renderdoc/commit/8da2062a896230f3bd3c81b0afd0a76ed94eea90

This is fixed with 0.25.


Node Support for v16+

I am using the latest stable node version 18.12.1 and when I try to install the module it gives me error which states that<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version "^16.5.0". Got "18.12.1"

thanks


Add functionality to allow multiple sorts to stack

User Story
As a user, I want an option to filter the table with multiple options.
Description
Currently the filtering functionality allows one option to be selected at a time. If the user decides to filter the Categories and then the Amounts, the Category filter will be overridden by the Amount filter.
Acceptable Criteria

A user can select one filter and the table will filter with that option
The user can then add additional filters and the table will filter based on the results of the previous filter
The results displayed in the table will be the result of the second filter stacked on the first
The user could decide how many filters to apply to the table based on what they are looking for

Testing
For testing purposes, entries will be created with correct data. The entries will then be filtered with one filter to ensure filtering continues to work as expected. A second filter will be added and the results will display a filtered result of the previous result. Another filter will be added to filter down the results. Additional filters will be added to the table until all dropdowns and searches have been used to continue filtering the previous results and not override the filtering functionality.

Functionality was created allowing multiple filters to stack. Functionality was tested on the current months table and a previously created table. Changes were committed in commit c10ae58


water sensor pull request

Added base functionality for water sensor to help with upstream HASS integration.

There was a bug in the hub.py, fixed it. Do merge and cut a release


Purge appears not to work with query feeds

Newsboat version 2.14.1:
Steps to reproduce the issue:

enter a query feed

press ^D and then $ to delete all and purge. Purged items disappear.

exit and reenter the feed. The purged items are back.

Other info you think is relevant:
Deleted and purged items also remain after exiting and reentering newsboat. The
query feeds are aggreating items from hidden feeds.

Reproduced on f03cd8d8b3cb4d5f4ed718cc48ea329b2c934baa. Will look deeper into this later; want to finish #455 first.
Thank you for the report, @gleachkr!

@gleachkr, I believe I fixed this in the bugfix/456-purge-in-query-feeds branch. If you're able to build from Git, please do so and verify that the bug is gone. Otherwise just wait for the 2.15 release at the end of March—the fix will be included there.
(I'll close the issue when I merge the fix into master branch.)


WIP Show GroovyDoc comments on hover

Fixes #50
So I found how to turn on the GroovyDoc parsing feature of Groovy3.
I also made and quick and dirty modification to show it working. Just checkout this branch and type ./gradlew test --info
You should see something like this

What was really weird, I could not get a multiline GroovyDoc comment to work. I tried several variations, but nothing.
So any/most AST Nodes should now have the getGroovydoc method. My eyes are kinda tired today, but tomorrow I hope to actually modify the hover provider and try and add some groovydoc to it! 🚀

Hovering includes docstring for the following:

Class

Constructors

Methods

Functions

It did not work for fields/variables that had the docstring but I don't think those are Annotated nodes, so it's a limitation of the library. There is also a weird bug with the indentation, both the function and the method have the same style docstring but different indentation levels. That's also from the library.
I think my next steps will be to strip out the comment part and fix the indent. Then I would like to style the GroovyDoc tags like @param and @return with markdown.

Havent pushed anything new, still working on parsing out the comment stuff. Harder than I expected. Using this docstring:
/**
* Returns an Image object that can then be painted on the screen.
* The url argument must specify an absolute {@link URL}. The name
* argument is a specifier that is relative to the url argument.
*
* This method always returns immediately, whether or not the
* image exists. When this applet attempts to draw the image on
* the screen, the data will be loaded. The graphics primitives
* that draw the image will incrementally paint on the screen.
*
* @param  url  an absolute URL giving the base location of the image
* @param  name the location of the image, relative to the url argument
* @return      the image at the specified URL
* @see         Image
*/

I have managed this, but I have a long way to go.

Converts the following docString:
/**
* Returns an Image object that can then be painted on the screen.
* The url argument must specify an absolute {@link URL}. The name
* argument is a specifier that is relative to the url argument.
*
* This method always returns immediately, whether or not the
* image exists. When this applet attempts to draw the image on
* the screen, the data will be loaded. The graphics primitives
* that draw the image will incrementally paint on the screen.
*
* @param  url  an absolute URL giving the base location of the image
* @param  name the location of the image, relative to the url argument
* @return      the image at the specified URL
* @see         Image
*/

Into:

I'm pretty happy with this v1. It will be even easier once groovy provides the individual pieces of the docString instead of the entire comment block raw.
I found one bug? but I havent looked into it. When you define a field it's docString is the class docString, but when you use that field later, it has the correct value.
Wrong Value

Correct Value


[Issue] Server Crash Whilst Building Dimensions

Okay, so one this server that I love to play on in the All The Mods Lite Pack, sometimes whilst at 99% the server will do a hard crash, and we'll be forced to reset at the last auto-save. I don't know if this is certain Dimlets that are doing this or what, but if you could please help.
Only Pic the server has provided:

Minecraft Version: 1.10

What version of RFTools dimensions?

1.1x-5.04, I do believe.

Does this happen for all dimensions?

No, it only happens for certain dimensions. I am unable to test which ones though, because the server admins have shut down the use of dimensions. Is there any problem dimlets for this version, or perhaps a certain order that needs to be followed or else it won't work?

In your version 'scattered orbs' cause crashes. That's the only thing I know

Would you be able to understand more with a full crash report? I might be able to get that.

perhaps yes

@CuddleFish123 any update on this?


Update hex-base64-encoding.ts

Updated because current doesnt work

Sorry for the delay in review.
This change still seems having an error in import statement.
We already fixed the errors in https://github.com/denoland/docs/pull/1114/files
Thanks for your contributions anyways.


[AutoPR machinelearningservices/resource-manager] update machine learning compute portion of the machine learning services swagger

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/3889

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/2762


clk_i actually is used.

https://github.com/black-parrot/pre-alpha-release/blob/ec0b7b04d4e78d7bf6b83a2b28e7db690451f315/bp_top/src/v/bp_clint.v#L90

This is latest clint
https://github.com/black-parrot/pre-alpha-release/blob/top_dev_feature_clintpdrework/bp_top/src/v/bp_clint.v


typo: coddies -> cookies

@eavena This PR that introduces a minor typo fix to one of documents of your authorship is available fore review. Thanks.


The channel number of DeformableConvolution layer and corresponding offset layer?

In the provided symbols file resnet_v1_101_rfcn_dcn.py, the channels (filter number) of deformation convolution layer is 512 and the filter number of corresponding offset layer is 72, how to set these two numbers? For example, if I want to construct a  deformation network for cifar10, the filter number of deformation convolution layer should be smaller than 512, should I choose 256 or 128?

The #filter equals to its traditional counterpart and the #filter in the offset layer should be kernel_w x kernel_h x 2 x #deformable_group


feat('other documents' to be part of 'everything else' filter): add Other Documents' to everything else filter

add Other Documents' to everything else filter
'Other Documents' to be part of 'Everything else' filter
BREAKING CHANGE: Now other documents filter is part of the everything else filter which changes how
the filters behaviour

:tada: This PR is included in version 2.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Current Reliability Issues

Here is a list of the final problems i'm trying to solve/detect to turn the system fully reliable (at least the reliable variants):
To think:

Need to see if i should delete a tracker if he is not used for a certain time and it is not the leader or if the leader tracker becomes the Rv node.

Future Design Choices:

Tracker needs to adapt to Rv failure, for mid transmission failure or better leave the next interation with the Rv change the address of the Rv and continue then running perfectly? [Currently last option]

Known limitations:

There might be some duplicated events due to recent tracker leader's change.

These fixes must be applied to the reliable variants:

Redirect-Rv-Reliable
Base-Rv-Reliable

Solved by commit db6a6cd :

Acknowledge chain not adapting well when an event is forwarded through a backup node [SOLVED]
Acknowledge chain not adapting to redirected events [SOLVED]

Ola!

Here is a list of the final problems i'm trying to solve/detect to turn the system fully reliable (at least the reliable variants):
To think:

Need to see if i should delete a tracker if he is not used for a certain time and it is not the leader or if the leader tracker becomes the Rv node.

Future Design Choices:

Tracker needs to adapt to Rv failure, for mid transmission failure or better leave the next interation with the Rv change the address of the Rv and continue then running perfectly? [Currently last option]

Known limitations:

There might be some duplicated events due to recent tracker leader's change.

These fixes must be applied to the reliable variants:

Redirect-Rv-Reliable
Base-Rv-Reliable

Solved by commit db6a6cd :

Acknowledge chain not adapting well when an event is forwarded through a backup node [SOLVED]
Acknowledge chain not adapting to redirected events [SOLVED]

Solved by commit 960d002c4fe56ad1d13d3a4043b9d89d77b46401:

the tracking leader is now the Rv node
allows full use of the reliability margin and good leader switch


Support change background according to the 'background' option

The colorscheme now changes to the correct color when set background is invoked.
g:ayu_color now only effective when background is dark.

looks reasonable


Reusable subDAG components

Is your feature request related to a problem? Please describe.
Reusing functions, helpers, etc... are all nice and good. However, sometimes you want to be able to reuse large subcomponents in the DAG.
Describe the solution you'd like
Two idea:

Use the Driver to stich bigger DAGs together
Two decorator (still need to fully think this through)

This uses prefixes, but some actual namespace notion could be nice here.
@hamilton.subdag_split(
    inputs={
        'subdag_1' : {'source' : 'source_for_dag_1'}, # subdag 1 gets its source from a different place than subdag 1
        'subdag_2 : {'source' : 'source_for_dag_2'}}}
def data(source: str) -> pd.DataFrame:
    return _load_data(source)

def foo(data) -> pd.Series:
    return _do_something(data)

@hamilton.subdag_join(subdag='subdag_1')
def process_subdag_1(foo) -> pd.Series:
    return _process_some_way(foo)

The framework would then compile this in a fancy way -- ensuring that every node between the splits and the joins is turned into one for each subdag, under a separate namespace. TBD on how to access it.
Describe alternatives you've considered
Not allowing this -- I don't have a concrete use-case blocking for anyone but we have observed one at Stitch Fix.
Additional context
Thinking ahead here.

OK, starting to think about this one. This is not something we want yet, but it is something we should plan for. Going to propose the following spec, I think this is much cleaner. See code example:
# marketing_module.py
def signups(raw_signup_data: pd.Series, business_line: str) -> pd.Series:
    ...

def marketing_spend(all_marketing_data: pd.Series, business_line: str) -> pd.Series:
    ...

def acquisition_cost(signups: pd.Series, marketing_spend: pd.Series) -> pd.Series:
    ...

def acquisition_cost_smoothed() -> pd.Series:
    ...

# dataflow.py
import marketing_module
@ubernode( # For lack of a better name...
    load_from=marketing_module, # modules or list of functions, cause why not?
    inject={'business_line' : value('womens')}, #this parameter gets injected in
    namespace='womens', # all nodes are named `womens.<node>`
    extract={'acquisition_cost' : 'acquisition_cost_womens', 'acquisition_cost_smoothed' : 'acquisition_cost_smoothed_womens'}
)
# Not sure what this function should look like. Idea would be to error out if you don't include all sources in the subDAG, then print out the signature for them to copy/paste.
def acquisition_data_womens(
    raw_signup_data: pd.Series,
    all_marketing_data: pd.Series) -> MultiNodeOutput(acquisition_cost_smoothed_womens=pd.Series, acquisition_cost_womens=pd.Series):
    pass

Motivation
Hamilton is a new paradigm for writing dataflow code. Nodes in a dataflow map 1:1 with functions, exactly. As opposed to a system in which some lower-level DSL (E.G. python) is used to construct static dataflows, we specifically trade off verbosity (of which Hamilton has plenty) for readability, debuggability, ease of development, etc.. We consider this to be strictly good, but it does not work for all cases, namely that of repetition and configuration (corresponding to for and if/else in a more traditional paradigm). Thus we've introduced a few decorators (parameterize and config.when) to allow for greater flexibility while preserving the benefits of Hamilton. These tend to break down, however, when one wants to apply for-loops over higher-level constructs in the DAG. For example, one might have a set of metrics that they wish to run on both the mens and womens business line. There are a few currently feasible approaches, each of which has its trade-offs:

Run separate drivers: works if materialization should be kept separate and these datums aren't joined as part of the dataflow.

Run a node that instantiates a driver and runs that (yikes)

Terminology
namespace A way to differentiate two nodes with the same name. E.G. with node baz and namespaces foo and bar, we have nodes foo.bar and foo.baz. This exists solely in conjunction with new subdags.
subdag A subset of the DAG that is introduced by parameterizing something.
API
Calling the decorater uberdag, although we need a better name. It takes in the following:

A list of functions or a module (load_from above)
Parameters/config to inject (inject above). No reason it can't be the same as parameterized
a namespace (namespace above/how to refer to all the intermediate nodes)
Output mapping (extract_outputs) above, referring to the nodes from the subdag the user wishes to extract, and how to name them.
Maybe a config if we're feeling fancy -- this allows us to configure the subDAG.

Then we have the function we decorate. Note that this is actually just gravy (we don't need it with the decorator), but let's make it show something to have it be readable:

Input parameters correspond to all non-injected inputs/types from the subDAG.
Output type is a MultiNodeOutput or something like that. Basically a typeddict with all the outputs.

This is a pain, so we have an error message when its not correct that prints the correct values.
Implementation
So this is easy enough. All we do is:

If module is passed in, resolve that to functions
if we already did (1) or functions are passed in, resolve the functions to nodes, using our config
change those nodes to have the namespaced name so they can coexist
Add identity nodes to ensure outputs have the right name
Validate, suggest function signature
Return all created nodes.

Might see how I feel and prototype this soon -- it'll be <100 LOC. And solves this problem in an extremely comprehensive, powerful, and readable way (I think).

Alright -- prototype is here: https://github.com/stitchfix/hamilton/pull/199. I want to get this out soon for power users. Need to rethink parts of the API.

Leaving some API thoughts here:

One could just use Hamilton within hamilton.

@extract_columns(*["video_title", "title_length", "title_word_count"])
def load_df(path: str) -> pd.DataFrame:
    _df = pd.read_csv(path)
    dr = driver.Driver(_df.to_dict(orient="series"), inner_transforms)
    df = dr.execute(["video_title", "title_length", "title_word_count"])
    return df

We could also constrain a decorator that effectively does the above two lines of code ^

@extract_columns(*["video_title", "title_length", "title_word_count"])
@reuse(inner_transforms, outputs=["video_title", "title_length", "title_word_count"])
def load_df(path: str) -> pd.DataFrame:
    _df = pd.read_csv(path)
    return _df

With (1) it would be opaque.
With (2) we would have full visibility into creating a single DAG.

@elijahbenizzy can you put the current API in here too?

Leaving some API thoughts here:

One could just use Hamilton within hamilton.

@extract_columns(*["video_title", "title_length", "title_word_count"])
def load_df(path: str) -> pd.DataFrame:
    _df = pd.read_csv(path)
    dr = driver.Driver(_df.to_dict(orient="series"), inner_transforms)
    df = dr.execute(["video_title", "title_length", "title_word_count"])
    return df

We could also constrain a decorator that effectively does the above two lines of code ^

@extract_columns(*["video_title", "title_length", "title_word_count"])
@inner_execute(inner_transforms, outputs=["video_title", "title_length", "title_word_count"])
def load_df(path: str) -> pd.DataFrame:
    _df = pd.read_csv(path)
    return _df

With (1) it would be very opaque. With (2) we would have some visibility into creating a single DAG -- with a best guess of determining inputs/no static guarantee with "inner" DAG (it would be a runtime check). Would require some internal work though.

Not much of a difference between @inner_execute and what we already with `reuse_functions. It just joins it. So sure, if you have a set of columns producing a dataframe it could be syntactic sugar on top. IMO Running Hamilton within Hamilton is a bit of an anti-pattern. No lineage guarentees, no way to abstract execution, encapsulation is busted...

Re: the current API -- see this: https://github.com/stitchfix/hamilton/blob/main/decorators.md#reuse_functions.

maybe this is a better API:

@parameterized_subdag(sub_dag, # functions or modules
                      config={"loader": "source_3"},
                      inputs={"source_3_path": source("source_3_path")})
def source_3_combined_data(combined_data: pd.DataFrame, something_not_in_inner: pd.Series) -> pd.DataFrame:
    # function name as namespace
    return combined_data

We are moving repositories! Please see the new version of this issue at https://github.com/DAGWorks-Inc/hamilton/issues/23. Also, please give us a star/update any of your internal links.


Investigate slow formatting

Some files are much slower to format than others, i've posted the top 20 below (for context: i can format 294k files in 290s on my 8 threads laptop, so roughly an average of 8ms per file, the real median is likely a good bit lower). The exact timings and order are inaccurate since we they come from the ecosystem check which runs in parallel, but no files should be that slow, especially since the files aren't that large. We need to format these files with a profiler attached (see CONTRIBUTING.md for instructions), find the bottleneck and optimize the relevant function.
$ cat target/formatter-ecosystem-errors.txt | grep "Slow formatting" | sd "Slow formatting .*/checkouts/(.*): Formatting the file took (.*)" '$2 $1' | sort -h -r | head -n 20
2157ms angr:angr/angr/procedures/definitions/win32_fwpuclnt.py
1430ms angr:angr/angr/procedures/definitions/win32_rpcrt4.py
1052ms kevoreilly:CAPEv2/tests/utils_pretty_print_funcs_data.py
965ms angr:angr/angr/procedures/definitions/win32_propsys.py
614ms angr:angr/angr/procedures/definitions/win32_dnsapi.py
553ms angr:angr/angr/procedures/definitions/win32_crypt32.py
531ms angr:angr/angr/procedures/definitions/win32_kernel32.py
491ms sympy:sympy/sympy/physics/quantum/tests/test_spin.py
446ms debian-calibre:calibre/src/calibre/ebooks/unihandecode/jacodepoints.py
435ms debian-calibre:calibre/src/calibre/ebooks/unihandecode/zhcodepoints.py
435ms debian-calibre:calibre/src/calibre/ebooks/unihandecode/krcodepoints.py
431ms pwndbg:pwndbg/pwndbg/lib/functions.py
378ms angr:angr/angr/procedures/definitions/win32_icu.py
368ms angr:angr/angr/procedures/definitions/win32_oleaut32.py
365ms angr:angr/angr/procedures/definitions/win32_wldap32.py
353ms angr:angr/angr/procedures/definitions/win32_advapi32.py
339ms kovidgoyal:calibre/src/calibre/ebooks/unihandecode/vncodepoints.py
335ms kovidgoyal:calibre/src/calibre/ebooks/unihandecode/jacodepoints.py
324ms angr:angr/angr/procedures/definitions/win32_user32.py
322ms kovidgoyal:calibre/src/calibre/ebooks/unihandecode/krcodepoints.py

Path
Source file size
Formatted file size

angr:angr/angr/procedures/definitions/win32_fwpuclnt.py
4.1M
35M

angr:angr/angr/procedures/definitions/win32_rpcrt4.py
2.0M
8.5M

kevoreilly:CAPEv2/tests/utils_pretty_print_funcs_data.py
8.9M
11M

angr:angr/angr/procedures/definitions/win32_propsys.py
1.2M
5.4M

angr:angr/angr/procedures/definitions/win32_dnsapi.py
833KB
3.2M

angr:angr/angr/procedures/definitions/win32_crypt32.py
794K
4.0M

angr:angr/angr/procedures/definitions/win32_kernel32.py
727K
1.3M

sympy:sympy/sympy/physics/quantum/tests/test_spin.py
337K
453K

debian-calibre:calibre/src/calibre/ebooks/unihandecode/jacodepoints.py
397K
1010K

debian-calibre:calibre/src/calibre/ebooks/unihandecode/zhcodepoints.py
397K
1010K

debian-calibre:calibre/src/calibre/ebooks/unihandecode/krcodepoints.py
397K
1010K

pwndbg:pwndbg/pwndbg/lib/functions.py
????
????

angr:angr/angr/procedures/definitions/win32_icu.py
641K
1.5M

angr:angr/angr/procedures/definitions/win32_oleaut32.py
566K
2.2M

angr:angr/angr/procedures/definitions/win32_wldap32.py
496K
1.1M

angr:angr/angr/procedures/definitions/win32_advapi32.py
556K
1.2M

kovidgoyal:calibre/src/calibre/ebooks/unihandecode/vncodepoints.py
397K
1010K

kovidgoyal:calibre/src/calibre/ebooks/unihandecode/jacodepoints.py
397K
1010K

angr:angr/angr/procedures/definitions/win32_user32.py
397K
726K

kovidgoyal:calibre/src/calibre/ebooks/unihandecode/krcodepoints.py
397K
1010K

We may need to take the line count after formatting. angr:angr/angr/procedures/definitions/win32_fwpuclnt.py has 334'645 after formatting... 35% of the time is spent inside the parser (after lexer refactor), another 30% is spent inside printing (yeah, printing 35mb takes a while). Profile
The same is probably true for most other files in the angr repository (win32_rpcrt4 has 129'402 lines after formatting) but also seems true for other files (utils_pretty_print_funcs_data has 216'887 after formatting). It is probably still worth to investigate file by file to make sure there are no real slow files.

good point, do you want to edit the OP with counts or should i change the script to sort differently? we could also use a file size filter  or a millisecond per kilobyte formatted score.

good point, do you want to edit the OP with counts or should i change the script to sort differently? we could also use a file size filter or a millisecond per kilobyte formatted score.

Sorry for the late reply. I think including the file size would be a good metric. Ideally, we would use the file size after formatting because it makes the file easier to compare. But that's probably somewhat hard.

I updated the table with the original and formatted file size. I'm not too concerned about the many MB files. But we may want to take a look why some of the <= 4MB file take so long to format.

@konstin I remember that you changed the diffing algorithm. Do you know if this is still a problem or if we can close the issue?

Let's close this. A pass over the slowest files would be nice but not pressing given the current performance on the test projects


Wondering if there's interest to have a similar repo/API for other fund providers?

Since I can't reach you on Twitter/Discord, I thought I'd just open an issue in this repo to ask you what you think about my proposal.
I was thinking about having a similar repo/API (could be multiple repos, can be just 1 🤷♂) that provides at least holdings for the following fund providers (we could add others as well if wanted):

Blackrock
iShares
Vanguard
Robeco
VanEck
Amundi
SPDR
HSBC
Fidelity
L&G (Legal & General)
Invesco
Schroder
WisdomTree
DWS
UBS
Xtrackers

Would you be interested in working on this (together)?
CC/ @frefrik @NexVeridian

Since the etfs don't update that much and are passive, I don't have a need for the data
You could grab the data from the SEC, or get it from csv like ark is
SEC
this one would be the closest
https://github.com/dgunning/edgartools
from edgar import *
from edgar.financials import Financials

set_identity("Name Email")

file = Company(1579982).get_filings(form="NPORT-P").latest(1).obj()

print(file)

but to_dataframe is not implemented
Get the financial data as a pandas dataframe

Each of the financial statements - BalanceSheet, IncomeStatement and CashFlowStatement - have a to_dataframe() method that will return the data as a pandas dataframe.

balance_sheet_df = financials.balance_sheet.to_dataframe()

CSV
I should be pretty easy to add it to here https://github.com/NexVeridian/ark-invest-api-rust-data
Just add the ticker and url here
https://github.com/NexVeridian/ark-invest-api-rust-data/blob/main/src/util/ticker.rs
then normalize the cols with polars
https://github.com/NexVeridian/ark-invest-api-rust-data/blob/558f8439ed57bd0b68b955b5272961f9ea781b0d/src/util/df_format.rs#L138C1-L159C2
then add to the match
https://github.com/NexVeridian/ark-invest-api-rust-data/blob/558f8439ed57bd0b68b955b5272961f9ea781b0d/src/util/df_format.rs#L7-L8

etfs don't update that much and are passive

@NexVeridian That's not true as the more people buy/sell a share of the ETF, the underlying shares need to be bought/sold extra as well to keep the same ratio as the tracked index has
Example: If you look at the holdings of IWDA and look at the nominal amount of shares of AAPL, you'll see:

29/12/2023: 16.998.642
28/03/2024: 16.899.926
31/05/2024: 17.246.749
13/06/2024: 17.328.343

I agree this is all done passively to stay in line with the tracked index, but the amount of underlying shares are still changing constantly over time
Hence why I still think this can be interesting data

@frefrik If you would have some time, can you please tell us your view on this proposal?

@frefrik If you would have some time, can you please tell us your view on this proposal?


v-else attribute doesn't work

Vue.js version
1.0.26
Reproduction Link
https://jsfiddle.net/koshpavel/3vh62y7r/
Steps to reproduce
All explanations are in the output
What is Expected?
Expected to not show  with v-else attribute
What is actually happening?
 has both v-if and v-for, both of them works fine, but next  with v-else attribute still renders.

it's  expected behavior.
v-for has higher priority than v-if
v-if in this case applies to each element which produces a v-for

Hi @PavelTytyuk
Adding to what @repsac-by explained, you can make it work by putting the v-if on a seperate element, like this:

 0">

        {{ contract }}

      No contracts (now shown as expected)


Slow block creation on first slot of the epoch

In some cases, when running several thousands of validators, the beacon node seems to have a significant delay starting block production at first slot of an epoch.
It is recognizable by looking at the info log Creating unsigned block for slot <>, that is supposed to appear very close to the beginning of the epoch.
In some extreme cases the delay is so high that can lead to a late block publishing (after 4s into the slot) causing the block to be reorged out.

closed via #7433


1156334 restyle fxos

Yeah, so that happened.
r?

There's still a lot of duplicate js code between the generic and fxos forms, but they're pretty different under the hood because they had different requirements, so I'm going to leave it for now.
This passes the unit tests and also the smoke tests.
Reviewing this might be hard because the diffs are a mess.
To review:

look at the final code and comment on issues there
do generic and fxos feedback looking for flow issues with back-and-forth using browser back button and the form's back button
look at the final css for sanity
look at cards.js -- does that look ok?

I need to rebase against master to pick up the footer width fix.

^^^ That folds in the footer width fix I just landed.  We can do those in another PR. Hopefully that reduces some of the review work.

I like the structure of the code. It all makes sense. I'm going to do a pass at testing now.

I went through the flow for Firefox and Firefox OS.  Didn't hit any issues. SHIP IT :ship: r+


View application fixes

Jira ticket
https://dfedigital.atlassian.net/browse/TEVA-2508
https://dfedigital.atlassian.net/browse/TEVA-2519
Changes in this PR

Create navigation list component
Update jobseeker job application review page
Update jobseeker and publisher job application pages

Product sign off

[ ] Looks good!

Review app deployed to https://teaching-vacancies-review-pr-3368.london.cloudapps.digital

Starting with TEVA-2519
Question about the Timeline that I have just added in Slack but is not related to this PR.
Full application visible in Review status

Details still visible when shortlisted, and rejected so that all looks good.

Onto 2508:
Only one question that might not be part of this PR.:

The status on the Education and Qualifications status is incorrect - it should not be "not started" as there is data there. This may be unrelated to this PR? If so I can flag a new ticket and this review is passed.

QTS question display looks good on Hiring staff side

Jobseeker side

Where optional fields have been left blank, all looks good on the Jobseeker side review page

and also looks good on the view page


Add HTTP proxy support to install windows updates

it would be great Install-WindowsUpdates could take a flag that could allow you to specify http/https proxy to get out to the windows updates servers.
I ran into this in a client environment. As a temporary workaround I added
netsh winhttp set proxy proxy-server="http=proxy..com:80;https=proxy..com:80" bypass-list="*.noproxu.com"
as the fist command in the install-windowsUpdates function @ https://github.com/cloudfoundry-incubator/bosh-windows-stemcell-builder/blob/master/bosh-psmodules/modules/BOSH.WindowsUpdates/BOSH.WindowsUpdates.psm1#L41

Hey @DaxterM, I assume you're still using the approach mentioned above? Do you still feel like it's a temporary workaround or has it been easy to maintain?

@crawsible  it's easy to maintain but requires forking  which makes it difficult to consume updates.  If other clients use this repo to automate the stemcell creation process I imagine they will run into this.

Ah, sorry, I didn't realize this required forking. Seems like a pretty straightforward change; I'll prioritize it.

I also need this feature.  Any idea when this might happen?

@cdelashmutt-pivotal We're hoping to get to it within the next two weeks.


Creating outputs from the final_state returned by dynamic_rnn causes conversion to fail

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): CentOS 7
TensorFlow installed from (source or binary): binary
TensorFlow version (or github SHA if from source): r1.14

Command used to run the converter or code if you’re using the Python API
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model('./savedmodel')
tflite_model = converter.convert()
open("lstm.tflite", "wb").write(tflite_model)
The output from the converter invocation
Traceback (most recent call last):
File "saved2lite.py", line 4, in
tflite_model = converter.convert()
File "/workdir/env-cpu/lib/python2.7/site-packages/tensorflow/lite/python/lite.py", line 898, in convert
**converter_kwargs)
File "/workdir/env-cpu/lib/python2.7/site-packages/tensorflow/lite/python/convert.py", line 404, in toco_convert_impl
input_data.SerializeToString())
File "/workdir/env-cpu/lib/python2.7/site-packages/tensorflow/lite/python/convert.py", line 172, in toco_convert_protos
"TOCO failed. See console for info.\n%s\n%s\n" % (stdout, stderr))
tensorflow.lite.python.convert.ConverterError: TOCO failed. See console for info.
2020-01-13 14:56:27.199876: F tensorflow/lite/toco/tooling_util.cc:918] Check failed: GetOpWithOutput(model, output_array) Specified output array "lstm/body/encoder/rnn/while/Identity_4" is not produced by any op in this graph. Is it a typo? This should not happen. If you trigger this error please send a bug report (with code to reporduce this error), to the TensorFlow Lite team.
Failure details
Model conversion fails when final_state is returned as an output
Any other info / logs
relevant code in model definition:
output, next_state = tf.compat.v1.lite.experimental.nn.dynamic_rnn(...)
c_out = next_state[0].c
h_out = next_state[0].h
relevant code in conversion to SavedModel (which does work):
tensor_info_c_out = tf.saved_model.utils.build_tensor_info(c_out)
tensor_info_h_out = tf.saved_model.utils.build_tensor_info(h_out)
prediction_signature = tf.saved_model.signature_def_utils.build_signature_def(inputs = {'x': x}, outputs = {'y': output, 'c_out': c_out, 'h_out':h_out), method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME)
The TFLite conversion works if I don't return the next state variables, c_out and h_out, but I need those to run the next step of the prediction.
If I run the conversion with tfnightly (using the same SavedModel file saved using 1.14) I get a different, seemingly unrelated, error:
Some of the operators in the model are not supported by the standard TensorFlow Lite runtime. If those are native TensorFlow operators, you might be able to use the extended runtime by passing --enable_select_tf_ops, or by setting target_ops=TFLITE_BUILTINS,SELECT_TF_OPS when calling tf.lite.TFLiteConverter(). Otherwise, if you have a custom implementation for them you can disable this error with --allow_custom_ops, or by setting allow_custom_ops=True when calling tf.lite.TFLiteConverter(). Here is a list of builtin operators you are using: CAST, FULLY_CONNECTED, GATHER, MUL, NOT_EQUAL, RESHAPE, SOFTMAX, SQUEEZE, TOPK_V2. Here is a list of operators for which you will need custom implementations: TensorListFromTensor, TensorListReserve, TensorListStack, While.

Can you try using the new experimental converter on the tf-nightly or on 2.1 branch which has more comprehensive support for dynamic_rnn. You can enable the experimental converter by setting converter.experimental_new_converter = True when converting the model. The code will look something like the following:
converter = tf.lite.TFLiteConverter(saved_model_dir)
converter.experimental_new_converter = True
converter.convert()

Hi gargn, thanks for taking the time to respond, much appreciated.
I installed tf-nightly-cpu, with tf.version: 2.1.0-dev20200102 and enabled the new converter.
I now see different error, but it's not clear to me exactly what the error is this time:
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'lstm/symbol_modality_4099_512/target_emb/weights_0:0' shape=(4099, 512) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'lstm/symbol_modality_4099_512/softmax/weights_0:0' shape=(4099, 512) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'lstm/symbol_modality_4099_512/target_emb/weights_0:0' shape=(4099, 512) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
WARNING:tensorflow:Unable to create a python object for variable <tf.Variable 'lstm/symbol_modality_4099_512/softmax/weights_0:0' shape=(4099, 512) dtype=float32_ref> because it is a reference variable. It may not be visible to training APIs. If this is a problem, consider rebuilding the SavedModel after running tf.compat.v1.enable_resource_variables().
2020-01-14 08:53:56.676776: I tensorflow/core/grappler/devices.cc:60] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 0 (Note: TensorFlow was not compiled with CUDA support)
2020-01-14 08:53:56.676908: I tensorflow/core/grappler/clusters/single_machine.cc:356] Starting new session
2020-01-14 08:53:57.025281: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:815] Optimization results for grappler item: graph_to_optimize
2020-01-14 08:53:57.025320: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:817]   constant_folding: Graph size after: 65 nodes (-37), 66 edges (-39), time = 209.377ms.
2020-01-14 08:53:57.025331: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:817]   constant_folding: Graph size after: 65 nodes (0), 66 edges (0), time = 62.395ms.
2020-01-14 08:53:57.025342: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:815] Optimization results for grappler item: __inference_lstm_body_encoder_rnn_while_body_226_118_frozen
2020-01-14 08:53:57.025353: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:817]   constant_folding: Graph size after: 109 nodes (-1), 110 edges (-2), time = 4.845ms.
2020-01-14 08:53:57.025364: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:817]   constant_folding: Graph size after: 109 nodes (0), 110 edges (0), time = 2.665ms.
2020-01-14 08:53:57.025374: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:815] Optimization results for grappler item: __inference_lstm_body_encoder_rnn_while_cond_225_27_frozen
2020-01-14 08:53:57.025385: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:817]   constant_folding: Graph size after: 25 nodes (0), 7 edges (0), time = 0.522ms.
2020-01-14 08:53:57.025395: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:817]   constant_folding: Graph size after: 25 nodes (0), 7 edges (0), time = 0.458ms.
Traceback (most recent call last):
File "saved2lite.py", line 5, in
tflite_model = converter.convert()
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/tensorflow_core/lite/python/lite.py", line 490, in convert
**converter_kwargs)
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/tensorflow_core/lite/python/convert.py", line 476, in toco_convert_impl
enable_mlir_converter=enable_mlir_converter)
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/tensorflow_core/lite/python/convert.py", line 215, in toco_convert_protos
raise ConverterError("See console for info.\n%s\n%s\n" % (stdout, stderr))
tensorflow.lite.python.convert.ConverterError: See console for info.
WARNING:tensorflow:Falling back to tensorflow client, its recommended to install the cloud tpu client directly with pip install cloud-tpu-client .
2020-01-14 08:53:59.632245: W tensorflow/compiler/mlir/lite/python/graphdef_to_tfl_flatbuffer.cc:108] Ignored output_format.
2020-01-14 08:53:59.632389: W tensorflow/compiler/mlir/lite/python/graphdef_to_tfl_flatbuffer.cc:114] Ignored drop_control_dependency.
2020-01-14 08:53:59.768696: I tensorflow/core/platform/profile_utils/cpu_utils.cc:101] CPU Frequency:<PHONE_NUMBER> Hz
2020-01-14 08:53:59.771053: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x57b6950 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-01-14 08:53:59.771071: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
The return code of the process called on line 201 of tensorflow_core/lite/python/convert.py is -11 if that helps.
--
I tried backing off to the conversion that works in 1.14 (without returning the LSTM state) and see a different error with the new converter in tf-nightly:
error: Convert ophint failed, malformed inputs or outputs.
Traceback (most recent call last):
File "/workdir/exp/lstm/tf-nightly-env/bin/toco_from_protos", line 8, in
sys.exit(main())
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/tensorflow_core/lite/toco/python/toco_from_protos.py", line 93, in main
app.run(main=execute, argv=[sys.argv[0]] + unparsed)
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/tensorflow_core/python/platform/app.py", line 40, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/absl/app.py", line 299, in run
_run_main(main, args)
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/absl/app.py", line 250, in _run_main
sys.exit(main(argv))
File "/workdir/exp/lstm/tf-nightly-env/lib/python2.7/site-packages/tensorflow_core/lite/toco/python/toco_from_protos.py", line 56, in execute
enable_mlir_converter)
Exception: :0: error: Convert ophint failed, malformed inputs or outputs.
This example works in 1.14, which leads me to suspect that there may be an incompatibility between SavedModel files created with 1.14 and the tflite converter in tf-nightly?

@renjie-liu Any insight into this error?


[WIP]Only pass initial values to validate when initialValues present

Should fixes #1241

[Current coverage][cc-pull] is 97.12%

Merging [#1244][cc-pull] into [master][cc-base-branch] will increase coverage by <.01%

@@             master      #1244   diff @@
==========================================
  Files            73         73
  Lines          4123       4133    +10
  Methods         770        772     +2
  Messages          0          0
  Branches        316        316
==========================================
+ Hits           4004       4014    +10
  Misses          119        119
  Partials          0          0

Powered by Codecov. Last updated by [0f385b9...da0ebbb][cc-compare]
[cc-base-branch]: https://codecov.io/gh/erikras/redux-form/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/erikras/redux-form/compare/0f385b963d1a30401ef575d3e4c8ce1afa2890a7...da0ebbbc3af4fb1e7f2736214047edb9492451b5
[cc-pull]: https://codecov.io/gh/erikras/redux-form/pull/1244?src=pr

I recognized that the previous approach is  not a good solution, need some time to find a better way to handle this.

What about reverting the commit? cc @erikras

@ooflorent Which commit, specifically?

This one https://github.com/erikras/redux-form/pull/1061 I think.

Rollback published as v5.3.1.


improve grammar in README

Tweak wording and grammar in README to make it more readable. Correct small grammatical oddities

Thanks! Looks better.
I fixed a small typo here


Relate/Unrelate command parser argument extraction

The code should use AugumentTokenizer to extract to ID argument.

This is not a bug-fixing. It is to improve the code quality.


MRG, ENH: Add new blocks and constants

Follow-up to https://github.com/mne-tools/fiff-constants/pull/22.
I will try to get some actual data for testing from Jukka, but in the meantime I think the existing create_info-based test should be sufficient.

Pushed a commit to improve QuSpin OPM coil_def.dat entries using a cylinder approximation

merge if you're done @larsoner


Move blockUser and other scripts to under admin API

coverage: 83.34% (-0.03%) from 83.371%
when pulling 708ecbff9c9e4fa04511ea66bc2b53fb5c64b3d1 on admin-api-moderation
into 17928e5160ae5f8e80bb85971d34c52dc8707cf6 on pubsub-cmd.


Diagnostics should redact password in stream URLs

Is your feature request related to a problem? Please describe.
Not really, I just noticed that diagnostics data includes full stream URls, which are not redacted.
Describe the solution you'd like
The component / integration is in charge of redacting its config data. In theory, since it knows the structure of its config it could redact passwords specifically from any stream URLs, but that would not work for solutions where the API key is not a HTTP Basic credential.
Describe alternatives you've considered
I use a container orchestrator so I can just simply work around it by using env variables instead of storing the passwords in the config file.
However:

This does not work for people using the HassOS addon
This does not solve other potentially sensitive things from leaking, like the URL of a camera (which might be publicly routable)

Additional context
Not a high prio issue in any way, just a small thing that could be improved upon.

this is already done as far as I can tell https://github.com/blakeblackshear/frigate-hass-integration/blob/master/custom_components/frigate/diagnostics.py

It does not include stream URLs, just the main frigate user and password

Sure, but the integration gets the config from Frigate which already sends the config obfuscated

Sure, but the integration gets the config from Frigate which already sends the config obfuscated assuming you're running a recent version

0.15.0-1b7fe95
This is part of my diagnostics:
"go2rtc": {
        "rtsp": {
          "listen": ":8554",
          "username": "restream",
          "password": "**REDACTED**"
        },
        "streams": {
          "doorbell": [
            "ffmpeg:http://<IP_ADDRESS>/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password=xxxxxxx#video=copy#audio=copy#audio=opus",
<EMAIL_ADDRESS>          ],
          "doorbell_sub": [
            "ffmpeg:http://<IP_ADDRESS>/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=admin&password=xxxxxxx",
<EMAIL_ADDRESS>          ]
        }
      },

Maybe the go2rtc streams are not properly being redacted then? Note the xxxxxxx is me manually redacting my password.

I'll take a look, might be specific to go2rtc


geoLocation optimizations

Instead of having the browser always asking the user for geoLocation permission, cache last successful geoLocation.

In the last commit, the location is already cached, but some sort of timer needs to be set for that cache to be forgotten.
For example, if the patient leaves the app open for a day or more, the location might change significantly.

At this line,
https://github.com/PharmaLedger-IMI/ctr-workspace/blob/5fd2eb378c9e230c5665928569752d93c4f2afef/ctr-patient/patient-ssapp/code/scripts/controllers/ClinicalTrialAns40TrialController.js#L66
the MatchRequest.coords are {}. Why ?

Problem workedaround in the previous commit.


macOS 13 Could Not Fetch Feeds

After I upgraded to macOS 13, I found that NetNewsWire failed to fetching feed.

I don't know whether these logs will help you, if you need more logs or other information please tell me.

Thanks for the report. We expect that Apple will be fixing bugs in macOS 13.

Are you still seeing this bug?

Are you still seeing this bug?

No more bugs. Thank you.


Support showing commands with arguments in Keybindings Editor

Support showing commands with arguments in Keybindings Editor

/duplicate #80214


Implement Sleep Clock Accuracy procedure support

Adding support for LE REQUEST PEER SCA and peripheral handling of central update to sleep clock accuracy.
This is NOT supported in LEGACY LLCP.

Regarding naming a.o., as I see this. (and I hereby retract my comment above ;-))
It is a bit confusing as this procedure has two 'functions' (as described in Spec.5.3p2869). One is informing peer of update to local SCA and the other to request current SCA from peer. As 'we' do not support updating local SCA, this means that this boils down to being a 'request peer SCA' procedure.
However I agree that naming should reflect the general - so the naming re. the procedure and support (in KConfig a.o.) should use the term 'SCA_UPDATE' and not 'REQUEST_PEER_SCA'

OK, so I've made the name change - using SCA_UPDATE all round, except for the API and complete-path where I've kept references to 'request peer sca'

... and rebased


Karate 1.5.0.RC4: cucumber.json Report Not Generated, Only .feature-json.txt Files Created

Hello, I encountered an issue after upgrading from Karate version 0.9.6 to version 1.5.0.RC4. The problem is that the cucumber.json report is not generated; instead, a .feature-json.txt file is generated.
I am using the following for my Karate project for automated tests:

Karate library 1.5.0.RC4
GraalVM 23.0.4
Java 21
Cucumber-reporting 5.8.2

Here is a code snippet:
public class DefaultCucumberRunner implements CucumberParallelRunner {

  @Override
  public Results run(CucumberRunnerParameters parameters) {
    var directoryPath = getClassPackagePath(parameters.getRunningClass());
    return Runner.path(getKarateFeaturePaths(directoryPath))
            .outputJunitXml(true)
            .outputCucumberJson(true)
            .tags("~@ignore")
            .parallel(parameters.getThreadCount());
  }

  private static List<String> getKarateFeaturePaths(String directoryPath) {
    var featureFiles = FileUtils.listFiles(
            new File(USER_DIRECTORY + FOLDER_SEPARATOR + directoryPath),
            new String[] {KARATE_FEATURE_EXTENSION},
            true
    );
    return featureFiles.stream()
            .map(File::getPath)
            .toList();
  }
}

public class ReportGenerator {
  private static final String CUCUMBER_HTML_REPORTS_PATH = "target/" + ReportBuilder.BASE_DIRECTORY;
  private final ReportHandler reportHandler;

  /** Clean up report directories. */
  public static void cleanUpReportDirectories(String karateOutputPath) throws IOException {
    FileUtils.deleteDirectory(new File(karateOutputPath));
    FileUtils.deleteDirectory(new File(CUCUMBER_HTML_REPORTS_PATH));
  }

  /** Generate a cucumber HTML report. */
  public void generateReport(String karateOutputPath, boolean isSuccessful) {

    var karateOutputFile = new File(karateOutputPath);

    if (!karateOutputFile.isDirectory()) {
      throw new IllegalArgumentException(
              "Karate report was not correctly created. This might be due to no Karate tests being launched.");
    }
    List<String> jsonPaths = FileUtils.listFiles(karateOutputFile, new String[]{"json"}, true)
            .stream()
            .map(File::getAbsolutePath)
            .toList();

    if (jsonPaths.isEmpty()) {
      throw new IllegalArgumentException("No Karate JSON report files found.");
    }

    var config = new Configuration(new File("target"), "my-project-automatedtest");
    config.setSortingMethod(SortingMethod.ALPHABETICAL);

    var reportBuilder = new ReportBuilder(jsonPaths, config);
    reportBuilder.generateReports();
    var reportDir = new File(config.getReportDirectory(), ReportBuilder.BASE_DIRECTORY);
    reportHandler.handleReport(reportDir, isSuccessful);
  }
}

The issue is that with this version of Karate, even when adding the outputCucumberJson(true) option, I do not find a .json report in the output directory target/karate-reports. I only see .feature-json.txt reports and .html files. Consequently, when generating the report, I encounter an error indicating that the JSON file is not found in the directory.
java.lang.IllegalArgumentException: No Karate JSON report files found.

sounds like a misconfiguration or wrong library still being used. happy to re-open if you follow this process: https://github.com/karatelabs/karate/wiki/How-to-Submit-an-Issue


Option to keep fastqc zip file

I was wondering whether it would be possible to add an option to bcbio to maintain the fastqc output zip file or otherwise maintain the outputted images from fastqc? Currently, the individual fastqc images are only available embedded within the single output html document.

Apologies, we've been trying to move in the opposite direction since the single HTML file is much easier to pass along and display. Out of curiousity, why do you have the need for the individual images? Are you reformatting/redisplaying the output? Thanks much for the suggestion and discussion.

Yep, I'm hoping to be able to redisplay the figures from fastqc (so that it's easier to compare samples side by side). It's not a massive issue however, as the fastqc data file seems to contain all the output data necessary for regenerating the plots.

Hi, I'm just following up on the above issue as I = noticed in your comments for _run_fastqc that you note: "Handles fastqc 0.11+, which use a single HTML file and older versions that use a directory of files + images. The goal is to eventually move to only 0.11". I was just looking at the latest version of fastqc (0.11.2) and it looks to me at least that the zip file (containing the directory of images, data and html output) is produced as standard? Do you know if there are future plans to stop producing the zip file containing individual images? Naively, I would have thought maintaining the zip file would be more useful than the fastqc_data.txt file so users can access individual images. Without direct access to the images, I'm looking at extracting the pngs from the html, replotting the figures from the data file or perhaps rerunning fastqc after bcbio finishes. All solutions are a little hacky so it would be great if this could be avoided :-)

Dan -- apologies about the delay getting to this. Guillermo just added this support in the latest development version. The zip file should get created and passed along in the final output directory so you can post-process it downstream. Hope this works for what you need.

OK great!


Terms to use

Depends on the context: use either "Bioinformatics team" or "Bioinformatians"

"should" or "shall"

"biologist" vs "wetlab" vs ???

ISO norms vs ISO-15189


269 docs osm tutorial

Description

Fixes #269 and Fixes #285

OSM tutorial for filtering and inspecting spatial features
Small patch to imports in GTFS tutorial

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 98.13%. Comparing base (184fd5e) to head (bf4ac93).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #286   +/-   ##
=======================================
  Coverage   98.13%   98.13%
=======================================
  Files          21       21
  Lines        1927     1927
=======================================
  Hits         1891     1891
  Misses         36       36

Flag
Coverage Δ

unittests
98.13% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Housekeeping: update python deps pyjwt and cryptography

Bump pyjwt from 2.7.0 to 2.8.0
Bump cryptography from 41.0.2 to 41.0.3
Proposed changes:
Bump pyjwt from 2.7.0 to 2.8.0 https://github.com/RasaHQ/rasa/pull/12705
Bump cryptography from 41.0.2 to 41.0.3 https://github.com/RasaHQ/rasa/pull/12705
Status (please check what you already did):

[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog (please check changelog for instructions)
[ ] reformat files using black (please check Readme for instructions)

 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.


Changes to README in the Fluent Branch

Can one of the admins verify this patch?

Hi @selvasingh, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (asirveda). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@azuresdkci add to whitelist


[NVIDIA TF] Avoid cudaSetDevice to "invisible" GPU in CreateDevices

CreateDevices caches and re-stores the current device with cudaGetDevice and cudaSetDevice. Before any CUDA devices have been initialized, cudaGetDevice returns a default value of zero. So, if device zero is not among the visible devices, the function will "restore" (call cudaSetDevice on) an ineligible GPU. This was previously harmless, but in some cases (e.g., CUDA 12 with CUDA lazy module laoding enabled) it can now result in a spurious CUDA context being created on device zero.
This PR fixes the problem by restoring the original device only if it is among the set of visible GPUs. Otherwise, the first listed visible GPU is set.

@reedwm Could you take a look?

Does the call to cudaDeviceGetStreamPriorityRange force initialization on previous versions of CUDA?

Correct. cudaSetDevice did not previously create a context, but cudaDeviceGetStreamPriorityRange did.


dirPagination: IE8 Unknown runtime error & Unexpected call to method or property access.undefined !

I downloaded your demo project in plnkr(http://plnkr.co/edit/Wtkv71LIqUR4OhzhgpqL?p=preview) and replaced the "data-require" script with local javascript files like

Then I run in IE8(Simulated by IE 11 F12 tool) . At first I got this problem : Unknown runtime error , I tracked down the source and found the scene of accident
forEach({
  removeData: jqLiteRemoveData,

  dealoc: jqLiteDealoc,

  on: function onFn(element, type, fn, unsupported){
    if (isDefined(unsupported)) throw jqLiteMinErr('onargs', 'jqLite#on() does not support the `selector` or `eventData` parameters');

    var events = jqLiteExpandoStore(element, 'events'),
        handle = jqLiteExpandoStore(element, 'handle');

    if (!events) jqLiteExpandoStore(element, 'events', events = {});
    if (!handle) jqLiteExpandoStore(element, 'handle', handle = createEventHandler(element, events));

in createEventHandler
// Remove monkey-patched methods (IE),
    // as they would cause memory leaks in IE8.
    if (msie <= 8) {
      // IE7/8 does not allow to delete property on native object
      event.preventDefault = null;
      event.stopPropagation = null;
      event.isDefaultPrevented = null;
    } else {

I don't ready know what happened but i fix this problem by placing "jquery-1.7.min.js" before "angular.js" .
And then i got this "Unexpected call to method or property access.undefined" , i found the solution here(https://github.com/angular/angular.js/issues/1933). You should always set " replace : true " when you use a " restrict:'E' " ! (user-defined tags are not supported by IE 8 by default.)

@michaelbromley
"However, there is a simple fix to get it working in IE8 - just use dir-pagination-controls as an attribute, rather than an element."
with that said, I just want to clarify if this is correct. I changed it from

to

but the pagination still didn't showed up. Any thoughts ?
Thanks Micheal.

Hi,
in your example there you have missed an "s" off the end of the attribute name. Does adding one fix it?

Hi,
I'm sorry I mistype it here, its actually div dir-pagination-controls. So going back to my issue I just did make the dir-pagination-controls to element but the pagination still didn't render in IE8.

Thanks Micheal.

Ah - the console output reveals the problem. You are using jQuery 2.x, which does not support IE8. You should switch to the 1.x branch and see if that works.

Hi,
I did switch it to jquery-1.11.2.min.js and AngularJS v1.2.26 (since 1.3 didn't support IE8). Here is my screenshot. Now the only errors were shown were Unknown runtime error.

Thanks Micheal.

Hi Micheal - I'm having problems with IE8 too, running the correct version of Angular & jQuery and dir-pagination-controls as an attribute but get a type error 'Node' is undefined and a the pagination controls cannot be used without the corresponding directive error ... any ideas? Many thanks tim

@DevsExMachina Can you show me the view code you are using?

Hi Yes indeed .. html5shiv & respond for IE8 plus the compatible versions of jQuery & Angular with my minified js after..

In the partial ....

All

myCompany

myCompany2

Industry Leaders

		Search Mentors
		<input ng-model="searchQuery" id="mentorsSearchId" placeholder="Search Mentors">

					{{item.name}}

					{{item.position}}
					{{item.company}}

In the controller..
acceleratorControllers.controller('MentorsControl', ['$scope','$http', function($scope, $http){

	$http.get('app/json/stubs/mentors.json').success(function(data){

		$scope.mentorsList = data;

	});

}]);

Hi I too am getting the exact same error as @DevsExMachina. I have the exact same set up as they do only difference being variables names are different but everything else exactly the same.
Is there are fix for this?

Hi,
I've not had time to look into this yet (I can generally only work on this in free time at the moment). I'm reopening it and marking it to handle for the next update.

With these tiny changes, works for me in IE8 :
https://github.com/michaelbromley/angularUtils/pull/184

I had the same issue in IE 8. With tomchivertons changes it worked. Thank you both!

@tomchiverton thanks for the fix!


Bug#168, part 2 - add script to download tutorial data

Add script to download data.

Because the AC has the FusionTutorial-Full.tar.gz to be deleted at the end
of the processing.  Thus, only Imagery (and the other three directories)
will exist.  I can change it to test for all four directories...
The 'download_tutorial.sh' script is installed by 'install_fusion.sh' in
/opt/google/share/tutorials/fusion, which is where the Imagery, etc.,
directories will exist.
On Wed, Jul 5, 2017 at 3:50 PM, tst-awankhede<EMAIL_ADDRESS>wrote:

@tst-awankhede commented on this pull request.
In earth_enterprise/tutorial/FusionTutorial/download_tutorial.sh
https://github.com/google/earthenterprise/pull/301#discussion_r125773208
:

@@ -1,6 +1,9 @@
#!/bin/bash

+TMPFILE=/tmp/FusionTutorial-Full.tar.gz
+
if [ ! -d Imagery ]; then
its still not clear to me why checking for Imagery and not the tar file ?
Also - what part of the code would actually copy the /download_tutorial.sh
into the tmp_install ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/earthenterprise/pull/301#pullrequestreview-48195210,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AaxYdGfjZAedzIXwm0YtGI7p0_tki2F5ks5sLBMqgaJpZM4OOoiH
.

I read the ticket again, so its clear about the location /opt/google/share/tutorials/fusion/download_tutorial.sh

in Part1  - sudo  /opt/google/bin/geconfigureassetroot --addvolume opt:/opt/google/share/tutorials --noprompt --nochown

when I ran this command and, it fails if opt already exists, so can you please add a check not to run this command if opt volume is defined ?

In tar -xvzf $TMPFILE -C .

instead of -C . , it should be -C   /opt/google/share/tutorials/fusion/ otherwise the unzip will put the tutorial resources in whatever dir its run from.
e.g. in the below case
~/geeinstalldir_copy/common/opt/google$ sudo  /opt/google/share/tutorials/fusion/download_tutorial.sh
the resources would be put in ~/geeinstalldir_copy/common/opt/google

@tst-awankhede  For comment #3, Lee had a similar comment, so it has been corrected - the output will always go to /opt/google/share/tutorials/fusion.  For comment #2, shall I re-open Part 1, GP-178?

For comment #2, shall I re-open Part 1, GP-178?  - I think we can fix it here in this pull request , just edit that file and "git add" git commit , git push in this PR is okay.

How do I check if 'opt' is defined? - geconfigureassetroot has no query mode (yet).
It would seem to only be an issue if 'opt' is already defined and set to somewhere else.
Do you have an example command line that shows how to do this query?

@tst-eclamar Do you need some query mode other than the #288 requirement? If not, we could merge that :-)

Tested the latest version - looks good.