Create Base Class for Mail Reports in TenantReport

Mail reports cannot inherit TenantReportObject class, as they don't have TenantGuid and TenantName. New base class should be created.

Any updates?

No updates @panjkov sorry. Busy doing other things at the moment. I don't know whether @toneysui has the bandwidth to sort this out?

Sorry I don't have time recently. Currently I have investigated with the original report owner and confirmed that, the reason for these reports doesn't contain TenantGuid and TenantName is because they will be shown in Syndication partners report page and these information are PII that don't want to show to them.

Ok, could then be good workaround to refactor TenantReport class to support empty values for these two reports, so that we can support Mail reports?
Sent from Windows Mail
From: Toney Sui
Sent: Monday, March 2, 2015 2:46 AM
To: Microsoft/o365rwsclient
Cc: Dragan Panjkov
Sorry I don't have time recently. Currently I have investigated with the original report owner and confirmed that, the reason for these reports doesn't contain TenantGuid and TenantName is because they will be shown in Syndication partners report page and these information are PII that don't want to show to them.
—
Reply to this email directly or view it on GitHub.

Hi Dragan,
I think the code change would be:

Create a new base class “ProtectedTenantReportObject”
Copy all of the properties from TenantReportObject to ProtectedTenantReportObject except TenantName and TenantGuid
Make TenantReportObject inherit from ProtectedTenantReportObject
Update the LoadFromXml method in TenantReportObject.

Yes, you mentioned the most simple way to do that, is to keep the current base class and just let all partner reports inherit from it. The TenantName and TenantGuid columns will be set to NULL if it cannot find the column in the service return result.

TenantReportObject only loads those two properties. Now that you mentioned that LoadFromXml would return null (overlooked that before) I also think we might be able to keep current base classes anf use them for all mail, partner and scorecard reports.


split controller methods

Another major internal refactor, this adds new crud methods
for relations (createRelation/updateRelation/destroyRelation).
This greatly reduces the context being passed between various
modules within Endpoints and clarifies the public API further.

WIP.


fix: adjust ci indicator vertical alignment

Closes #2762
Example url: https://github.com/sindresorhus/refined-github/
Before:

After:

(Tested in Firefox 74.0b4 and Chrome 80 on MacOS)
<!--

Thanks for contributing! 🍄

1. LINKED ISSUES:
   Does this PR close/fix an existing issue? Write something like `Closes #10`

2. TEST URLS:
   Add some test URLs

3. SCREENSHOT:
   Add a screenshot here if your PR makes visual changes

We already have a top to align it; its value needs to be adjusted

We already have a top to align it; its value needs to be adjusted

Ok fair enough - tested in FF and Chrome on MacOS again and looks ok to me:
FF

Chrome

Thanks for the bug fix!


Calculate stacked COB correctly in advanced-meal-assist

Don't blindly calculate from first or biggest carb treatment: properly figure out when COB drops to zero and start over after that.

Fixed with https://github.com/openaps/oref0/commit/78b79d173166944f4fb36fcb0de8bcd7ca3444b1


Add voice-chat button

It should be available if the realm supports it.

Close by https://github.com/decentraland/godot-explorer/pull/226


[REQUEST] Add VFX Platform 2023 to CI build matrix

There are now VFX Platform 2023 clang 14 and clang 15 versions of the ci-openvdb aswfdocker build containers available:

aswf/ci-openvdb:2023-clang14
aswf/ci-openvdb:2023-clang15

They could now be added to the CI build matrix:
https://github.com/AcademySoftwareFoundation/openvdb/blob/9a57c7e68e5de9ecfd05a98364dcfb8063f71186/.github/workflows/build.yml#L71
There has been a fair number of changes to these containers since VFX Platform 2022, feedback welcome if any issues crop up.

Hey @jfpanisset thanks s lot for these. I've finally had a chance to look at bumping the VDB CI and am getting issues with GLFW3:
https://github.com/Idclip/openvdb/actions/runs/6287213295/job/17071469457
I'm assuming nothing had explicitly changed here? Can you confirm that the version install of glfw should be the same for the 2023 containers?
Cheers,
Nick

@Idclip  Between the 2023 and 2023.1 releases of the aswf-docker containers, one of the changes that went in is that glfw is now installed as a Conan package instead of a direct build & install:
https://github.com/AcademySoftwareFoundation/aswf-docker/blob/16cbddb991fb8edb18af65797f2cd0d3a911da91/ci-openvdb/Dockerfile#L134
It is possible that somehow this didn't pull in the the expected glfw CMake files, or put them in a different place than before. The ci-vfxall container successfully builds OpenVDB, but I seen that the build failure is with vdb_view which I don't think is built by anything in aswf-docker, which may explain why this regression was missed.
I will take a look and try to find what is different between the ci-openvdb:2023 and ci-openvdb:2023.1 installs of glfw3 and see if there's a simple fix.

Thanks @jfpanisset, switching from 15 (which uses 15.1) to 15.0 does seem to work https://github.com/Idclip/openvdb/actions/runs/6361210998/job/17275486301
I'll use 15.0 for now

Unfortunately I was not able to get it resolved in time for the 2023.2 release, but now that I understand better what's going on, I'm hoping to get it resolved for 2024.0
Some of the Conan recipes we are using are making the assumption that CMake recipes it installs will only be used in the context of Conan, but we need those to work from "vanilla" CMake, which is what our ASWF projects use.
I'm still learning the details of how this works, and if I figure it out for 2024.0, I will try to backport to a 2023.3 release, or provide a simple script you can use the patch the CMake files in the 2023.2 container.
So I haven't forgotten, still working on it.


.htm files not recognised as HTML

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
When opening any .htm file, Zed identifies the file as type Unknown in the bottom info bar, and there is no HTML syntax highlighting. This indicates that Zed does not recognise the .htm file extension as valid for HTML, nor does it remember the association if the file type is manually selected (which does then correctly syntax-highlight the file, but only for the current edit while the file is open).
.htm may be a rather old-fashioned choice for an HTML file extension, but it's nonetheless still valid and is still in use on many legacy sites. So it would be good if Zed could automatically recognise .htm files as HTML please.
Environment
Zed: v0.81.1 (stable)
OS: macOS 13.3.1
Memory: 16 GiB
Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature
No response
If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
If you only need the most recent lines, you can run the zed: open log command palette action to see the last 1000.
No response

I think we need to provide a setting that allows users to map a known file extensions syntax highlighting to unknown file extensions.. something like this:
"language_map": {
    "html": ["htm", "a," "b"],
    "py": ["pyc", "pyp"],
}

Thanks Joseph, perfect solution. Also very useful for working with close relatives of a recognised file type, e.g. custom XML schemas like GPX files (assuming XML becomes a recognised Zed file type at some point).

Assuming what @JosephTLyons mentioned here is implemented for #595, this issue can be closed.

Closing in favor of #595.


Set PrivateAssets=all for BuildTasks helper package ref

Fixes: https://github.com/CommunityToolkit/Maui.NativeLibraryInterop/issues/32
Ensures the BuildTasks helper package will not be transitive dependency of the binding projects.

@pjcollins Thank you for the change! I really appreciate your work on this project!


Download dataset

Hi, the link of scene graphs for VG dataset in DATASET.md is not access. Could you update the link? Thanks!

Thanks for the reminder. We have updated the link in DATASET.md.

Thank you for your reply. But there are still no files in this link (the OneDrive link of scene graphs of VG dataset).


onUnhandledRequest drastically increasing execution time

Problem
Execution of visual tests on Chromatic goes from 3 minutes on average to around 18 minutes
Changing the following code:
 initializeWorker({
   onUnhandledRequest(req) {
     // Only some API requests should be mocked
     if (!req.url.href.startsWith(myapi(''))) {
       return;
     }
     console.error(
       'Found an unhandled %s request to %s',
       req.method,
       req.url.href,
     );

    throw new Error(
      'Unhandled request, please ensure you are mocking the correct endpoints',
    );
  },
});

to simply:
 initializeWorker();

fixed the issue.
I'm not sure if the problem is with this addon, with msw itself, or with how the integration is being done.  If I want to workaround this and provide a fallback request handler to setupServer, I can't because there is no way to forward options to setupServer.
Version info:
msw-storybook-addon: 1.1.0
msw: 0.30.0:

Hey, @stephan-noel-primer. Thank you for reaching out.
I can suspect the suggestions logic in MSW that can be the culprit here. Whenever there's an unhandled request, MSW looks up a list of suggested request handlers to account for typos and method/operation kind mismatches to improve the DX. This can be an expensive operation given a large number of handlers.
Your approach above is sensible. Perhaps we should consider disabling the handler suggestions as an option if that's proven to be the performance bottleneck. To debug this, I recommend forking MSW, removing the suggestions, linking it to the msw-storybook-addon and using its local built to see if there's any performance impact.

MSW has long stopped shipping js-lavenshtein for request handler suggestions. Using onUnhandledRequest does not affect MSW performance now.


What does this error mean "Error during requesting sharings of..."?

I got this error "Error during requesting sharings of...".
I'm wondering weather it happens because of request is limited or another reason.

Hi,
It happens here: https://github.com/Timrael/social_shares/blob/master/lib/social_shares/base.rb#L14
You can call #shares! with exclamation mark and see error by your self, example:
SocialShares::Facebook.new('http://apple.com').shares!

If you want me to help you more, give me more details about what social network do you ask and what type of error do you get.

Hi,
I have tested to call #shares! with exclamation mark and it return 0. But problem seem happen randomly.
I have a script which loop all record and check weather it have fb share > 0 or not and will delete that record if it is 0.
It works well about first 20 records .. after that It always raise this error.
[SocialShares::Facebook] Error during requesting sharings of 'http://www.sample.com': 403 Forbidden

it is happening for me as well.


"Comani" is listed in the drop-down menu

Description:
When user writes "Comani" the location appears in the drop-down menu next to the comune and the county which is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Comani"
Expected results
The location appears in the drop-down menu as "Sat Comani, OLT (DRĂGĂNEȘTI-OLT)"


Update the Contact page to match Sprint 4 design

Description
We have updated content and layout change to the Content page as part of overall improving site usability and understandability. There might still be content tweaks later, but the Contact page should be updated to reflect the latest.
Links to user research or other resources
@janelien confirm Sprint 4 design mockups are ready for devs to use
Tasks

[x] Jane confirm Sprint 4 design mockups are ready for devs to use
[x] Beth set up<EMAIL_ADDRESS>addresses
[x] Dev update Contact content
[x] Dev remove Get Involved on the side - this is treated differently now in the About page design
[ ] Add a frontend test!

Definition of "Done"
Site matches Sprint 4 design.

latest contact page designs

We decided to have only one email address for this page and it has been created -<EMAIL_ADDRESS>

Jane and Tom will discuss this today

Could I please get a link to where I should look? I was looking here: https://d2zjid6n5ja2pt.cloudfront.net/justice40-tool/main/en/contact/ but it doesn't have this particular update (two emails are listed).

Looks good now.


The backend application writes to disk constantly even when it's not being used.

Describe the enhancement you'd like
The database writes every few seconds to the /data/db/ location and the tmp-config.v2.jsonxxxxxxx file, even if there is no task in progress.
Describe why this will benefit the LibrePhotos
This prevents HDD from entering standby mode or causes excessive and unnecessary wear in the case of an SSD.

tmp-config.v2.json writes are fom container healthcheck and db writes was solved by passing "-c wal_writer_delay=10000 -c bgwriter_delay=10000"  args to command in docker-compose.yml


Rework choosing new seeds in icache UVM memory model

The flow for a memory fetch is:

Cache requests data for a memory address
Agent spots the request, maybe signalling a PMP error
Grant line goes high, at which point the request is granted.
Sometime later (in-order pipeline), agent sends a response

Occasionally, we need to pick a new seed for the backing memory.
Before this patch, we picked these seeds at point (3).
Unfortunately this was wrong in the following case:

We're switching from seed S0 to seed S1.
The request is spotted with seed S0 and doesn't signal a PMP error
The request is granted and we switch to seed S1.
We respond with data from memory based on S1, with no memory
error either

If S1 would have caused a PMP error, the resulting fetch (no error,
but data from S1) doesn't match any possible seed and the scoreboard
gets confused.
This patch changes to picking new seeds at (2) to solve the problem.
This isn't quite enough by itself, because if a request is granted on
a clock-edge, a new request address might appear and there isn't a
guaranteed ordering in the simulation between the new request and the
old grant (both things happen at the same time). To fix this, the
response sequence now maintains a queue of requests and their
corresponding seeds to make sure that all the checks for a fetch are
done with a single seed.
The patch also gets rid of the seed state in the memory model: it
turns out that this didn't really help: the scoreboard is always
asking "what would I get with this seed?" and now the sequence is
doing something similar.

Force-push rebases and parametrises the mailbox type.


watchPosition should call notify, not resolve

watchPosition returns a promise which issues updates to the notify function

This should target Dev-next, and you only made the change to the mocks file. Did you mean to make it to the plugin file as well?

The plugin file is correctly calling notify(). Only the mock was wrong. I don't know how to have a PR target a branch.
It's a one-line change. Perhaps it would be better for you to make the change yourself.

No time to learn like the present: In your PR, you can change the branch using this:
https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

Okay. Ready to merge.


Cypress test. Error сannot read property at saving job.

Cypress test. Error сannot read property at saving job.
Motivation and context

How has this been tested?

Checklist

[X] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[X] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[X] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

Coverage remained the same at 62.831% when pulling 075c6670372571a852a9d226e77241e6250f9e12 on DmitriyOparin:do/cypress_test_pr_2203_error_сannot_read_property_at_saving_job into a9b28175626768305811a63fcbebd3d9baf6553a on openvinotoolkit:develop.

@DmitriyOparin
Please adapt the test to the updated object creation functionality.

@DmitriyOparin
Please adapt the test to the updated object creation functionality.

Test is adapt for new develop branch


Update Localization_sv.po

Added some missing chat stuff and replaced all instances of "moderatörer" with "moderatorer".
Finally changed all instances of "mall" with "template".
// Should note that all rules are still yet to be translated due to them not being available in the .pot file. They do exist in the #translations thread in the pxls.space discord server however, where they are fully translated and ready to be used. I just don't know how to do that personally.

…all rules are still yet to be translated due to them not being available in the .pot file

Assuming you are talking about the pxls.space specific ones, they appear only on site.

I just don't know how to do that personally.

The changes can be made to the running instance of the site, which is a task I'll have to do manually. This is obviously not an ideal situation and it's something that all instances have to deal with. Perhaps someday there will be a more ideal solution, but the design of such a system seems nontrivial and eludes me in the moment.


Adding 0-length rows API unclear.

The method for adding a 0-length row (as specified in the README) throws an error:
ragged_buffer = RaggedBufferF32(3)

ragged_buffer.push(np.array([[0,0,0],[1,1,1]], np.float32))
ragged_buffer.push(np.array([[]], np.float32)) <- ERROR thrown here

Whereas specifying the reshape(0,3) allows the array to be pushed:
ragged_buffer = RaggedBufferF32(3)

ragged_buffer.push(np.array([[0,0,0],[1,1,1]], np.float32))
ragged_buffer.push(np.array([[]], np.float32).reshape(0,3))
                                              ^^^^^^^^^^^^

If we push a 0-length array to the ragged buffer I think internally the reshape operation should be assumed?

Reproduction:
>>> import numpy as np
>>> import ragged_buffer
>>> rb = ragged_buffer.RaggedBufferF32(3)
>>> rb.push(np.array([[0,0,0],[1,1,1]], np.float32))
>>> rb.push(np.array([[]], np.float32))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Features mismatch: 3 != 0
>>> rb.push(np.array([], np.float32))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument 'items': Shape Mismatch:
 from=(dim=1, dtype=Float32), to=(dim=2, dtype=Float32)
>>> rb.push(np.array([], np.float32).reshape(0, 3))

I'm not sure we should allow rb.push(np.array([[]], np.float32)). [[]] is a list with one zero-length item, rather than an empty list. The error message seems decent, though probably it can be improved (I'm open to suggestions).
The case for allowing rb.push(np.array([], np.float32))  is quite good, and indeed the example in the README is currently broken.

Support for rb.push(np.array([], np.float32)) added in https://github.com/entity-neural-network/ragged-buffer/commit/f629a75621786e6e0b93d99d74943a4eafd90732 and published in 0.2.11 release. Additionally, I've added a push_empty() method.

Not sure if there is a use case for this yet... but i can envisage a scenario where you might want to do soemthing like:
ragged_buffer.push(np.array([[],[],[]], np.float32))
ragged_buffer.push(np.array([[1,2,3]], np.float32))

where you push specifically 3 zero length rows before pushing a normal row.
Would this be  the equivalent of:
ragged_buffer.push(np.array([], np.float32))
ragged_buffer.push(np.array([], np.float32))
ragged_buffer.push(np.array([], np.float32))
ragged_buffer.push(np.array([[1,2,3]], np.float32))

?

Yes, ragged_buffer.push always pushes a single row, so I don't think we'd want to make an exception for when pushing empty rows.
The extend method allows extending with multiple rows, in that case, the input argument is another RaggedBuffer. We could consider a version of extend that takes a flattened numpy array and a list of lengths as arguments, similar to from_flattened.

Got it. Thanks for the clarification.


Turning a pure JAX function into a FLAX Module

I would like to convert a pure JAX function of the form f(params,x) into a FLAX Module object such that module.call(params,x) would be equivalent to f(params,x). I want to do that to be able to wrap the module object in a flax.nn.Model. Would you mind showing me how to do that? I couldn't find a simple example anywhere.

Could you provide some more context? I'm guessing params is a dictionary of trainable parameters. If you were able to supply some initial dictionary (not nested in the example below), you could do something like this:
import flax
import jax
import jax.numpy as jnp

def f(params, x):
    return params["W"] @ x

class jax2flax(flax.nn.Module):
    def apply(self, x, f, init_params):
        params = {}
        for key, val in init_params.items():
            params[key] = self.param(key, shape=val.shape, initializer=flax.nn.initializers.ones)

        if self.is_initializing():
            for key, val in params.items():
                params[key] = val

        return f(params, x)

model_def = jax2flax.partial(f=f, init_params={"W": jnp.ones((2, 4))})
_, params = model_def.init_by_shape(jax.random.PRNGKey(0), [(4, 1)])
model = flax.nn.Model(model_def, params)
print("Evaluating model:", model(jnp.ones((4, 1))))

optim_def = flax.optim.GradientDescent(learning_rate=1)
optimizer = optim_def.create(model)

def loss(model, x, y):
    y_hat = model(x)
    return jnp.square(y - y_hat).mean()

loss, grad = jax.value_and_grad(loss)(optimizer.target, jnp.ones((4, 1)), jax.random.uniform(jax.random.PRNGKey(0), (2, 1)))
print("Loss, grad:", loss, grad)
optimizer = optimizer.apply_gradient(grad)
print("Updated model:", optimizer.target)

Which would output
Evaluating model: [[4.]
 [4.]]
Loss, grad: 12.265022 Model(module=<class 'flax.nn.base.jax2flax'>, params={'W': DeviceArray([[3.7837048, 3.7837048, 3.7837048, 3.7837048],
             [3.195876 , 3.195876 , 3.195876 , 3.195876 ]], dtype=float32)})
Updated model: Model(module=<class 'flax.nn.base.jax2flax'>, params={'W': DeviceArray([[-2.7837048, -2.7837048, -2.7837048, -2.7837048],
             [-2.195876 , -2.195876 , -2.195876 , -2.195876 ]],            dtype=float32)})

@stanislavfort  there was no activity on the issue for a few days, so I will close it. But please re-open it if you feel that your issue hasn't been resolved.


App bar loses elevation when drawer is dismissed.

Steps to reproduce

Add a scrollable list to a page on the drawer example in the flutter docs
https://docs.flutter.dev/cookbook/design/drawer

Scroll until app bar is elevated

Open and dismiss drawer

Notice that app bar has lost elevation

On scroll, the app bar's elevation returns.

Expected results
When the drawer is dismissed, the app bar should stay elevated.
Actual results
When the drawer is dismissed, the app bar loses elevation temporarily until scroll is detected.
Code sample
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  static const appTitle = 'Drawer Demo';

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: appTitle,
      home: MyHomePage(title: appTitle),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _selectedIndex = 0;

  void _onItemTapped(int index) {
    setState(() {
      _selectedIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        leading: Builder(
          builder: (context) {
            return IconButton(
              icon: const Icon(Icons.menu),
              onPressed: () {
                Scaffold.of(context).openDrawer();
              },
            );
          },
        ),
      ),
      body: Center(
        child: ListView.builder(
          itemCount: 100,
          itemBuilder: (BuildContext context, int index) {
            return ListTile(
              title: Text('Item $index'),
            );
          },
        ),
      ),
      drawer: Drawer(
        // Add a ListView to the drawer. This ensures the user can scroll
        // through the options in the drawer if there isn't enough vertical
        // space to fit everything.
        child: ListView(
          // Important: Remove any padding from the ListView.
          padding: EdgeInsets.zero,
          children: [
            const DrawerHeader(
              decoration: BoxDecoration(
                color: Colors.blue,
              ),
              child: Text('Drawer Header'),
            ),
            ListTile(
              title: const Text('Home'),
              selected: _selectedIndex == 0,
              onTap: () {
                // Update the state of the app
                _onItemTapped(0);
                // Then close the drawer
                Navigator.pop(context);
              },
            ),
            ListTile(
              title: const Text('Business'),
              selected: _selectedIndex == 1,
              onTap: () {
                // Update the state of the app
                _onItemTapped(1);
                // Then close the drawer
                Navigator.pop(context);
              },
            ),
            ListTile(
              title: const Text('School'),
              selected: _selectedIndex == 2,
              onTap: () {
                // Update the state of the app
                _onItemTapped(2);
                // Then close the drawer
                Navigator.pop(context);
              },
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video
app bar loses elevation.webm
Logs
No response
Flutter Doctor output
Ran on dartpad
Based on Dart SDK 3.4.3 and Flutter SDK 3.22.2

Thanks for your report @Eloyjaws! This is similar to https://github.com/flutter/flutter/issues/120083. You can add more ListTile to ListView under Drawer and it will illustrate the exact https://github.com/flutter/flutter/issues/120083.
Closing this as a duplicate. Please follow https://github.com/flutter/flutter/issues/120083 for updates.


v1.10: install: fix TerminationMessagePolicy for the Hubble Relay deployment

Commit 7ababfea backported a change to add support for TerminationMessagePolicy. However, the patch wasn't cleanly applied and the directive got introduced twice in the Hubble Relay deployment, breaking the Helm chart for Relay. This patch addresses this issue by removing the duplicate line.
Fixes: 7ababfea

/test

/test-backport-1.10

I triggered the wrong tests so ignore the failed ones. Also, the issue wasn't caught in CI so it's likely it won't be caught again as helm lint doesn't warn on duplicate keys at the same level of config. Marking as ready to merge.


Update quick-packages.sh

script will detect if running on WSL and use nodejs package instead of node-legacy package

It'd be better if we could avoid duplicating everything.  One approach we've used elsewhere (like oref0-setup) is to define a die() function, and then have each line be do the thing || die "couldn't do the thing" rather than chaining a bunch of this thing && that thing && the other thing.  That would allow your if clause to just apply to the nodejs vs. nodejs-legacy decision.  Is that something you'd be comfortable refactoring as part of this change, or should we make it a separate thing?

Might be above my pay grade. 😀 I'll take a look though and let you know.

Checking in on this - @sethgagnon did you have a chance to take a look?

Not sure the die function is in my wheelhouse, sorry. Maybe approve the code I submitted using the if else statements for now and then someone with stronger coding background can work on the die function?

Looks like this script is no longer used: the docs now reference the version in the oref0 repo instead.  There have also been some updates that might accomplish the same thing you're trying to do another way.  Can you try https://raw.githubusercontent.com/openaps/oref0/dev/bin/openaps-packages.sh and see if that works properly on WSL?

Closing due to lack of activity; please re-open if you resume testing per the above suggestion. Thanks!


Programatic graceful stop?

I've written a client for win/lin/mac that can run interactively, or as a service, or as a scheduled task.
Whilst using go-svc handles a graceful stop when a SIGINT or windows service stop is received, I want to also be able to call prg.Stop() to stop programatically eg after a set number of interactions/time etc.
For some calling prg.Stop() (as per your example/main.go) just hangs.
I've also tried sending a SIGINT to self: This works on mac/lin causing the Stop() func to run, but on windows it exits immediately without calling Stop()
How do you stop go-svc programatically (at the moment I'm just doing os.exit() but that seems crude).

If you call prg.Stop() then os.Exit it's not very nice looking but it'll get the job done.
I can add a svc.Shutdown() function to tear down the service and call prg.Stop(). If you're running it as a Windows service it may see this as a failure, and if you have any failure actions setup it might try to restart the service. I'll test this scenario.

@gridmon This should be addressed with the addition of the Context interface


setTimeout().unref() for chokidar?

Currently, if we use chokidar to watch directories/files, then the Node.js will not exit until we called watcher.close().
I believe it's because we have some setTimeout / setInterval which will block Node.js to quit until the event loop is clean.
I'd like to suggest that use setTimeout().unref() to make the chokidar to set-forget mode.

Yeah, for any listener that holds open the Node.js process I would expect to be able to call watcher.unref() to change that behavior.
In my case, I've got an application that should refresh data that's been read from underlying files, but the point isn't to act on file changes; the process should close by itself once the main server has closed.

Fixed this in chokidar v3

@paulmillr  I had to dig a little bit to figure out what you're talking about; this is the persistent option, right?
I would add something like

This provides behavior similar to unref() on Node.js listeners.

To make it more searchable. And I'd still consider adding an unref method for consistency with Node.js core behavior.


Question - TypeScript support and type declarations

I'm trying to use this in my TS project but I couldn't find the type declarations. Is TS not supported yet?
In case this isn't already there, I'm willing to do a PR to add type defs. Please let me know. Thanks.

any update on this being supported in TS

Hello, sorry this fell through without any attention. I do not use typescript and do not have much practical knowledge with it. A PR would be welcome.


[Feature] Allow testing for minimum versions of Git available

This patch implements a new method:
GitWrapper::hasMinimumVersion($major, $minor, $patch)

This method makes it possible for code using the library to test
whether or not a minimum version of Git is available.  For example, we
can write...
if ($wrapper->hasMinimumVersion(2, 5)) { ... }

...to determine if Git version 2.5.0 or later is available.  Not only
does this help library users to check for Git versions, it also allows
us to implement methods in the API which support Git commands that may
not be available on some systems depending on which version of Git the
developer has available, e.g. git worktree, which requires Git 2.5
or later.
Signed-off-by: Eric James Michael Ritz<EMAIL_ADDRESS>

The Travis CI build is failing due to this test:
$this->assertTrue($this->wrapper->hasMinimumVersion());

Given no arguments, the method tests to see if Git 2.0.0 or later is available.  Git 2.0 was released in May 2014, so the default test may be for too recent of a version and the method should instead check for an older version by default.

I'll fix this and resubmit it at a later time if you think the method would be useful overall.


Question about o2m matcher?

o2m matcher can guarante that each GT will have at least 1 prediction matching?

Hi, it cannot, but this case is rare. The o2m matcher initially computes the matching score between all GTs and all predictions, then assigns each prediction to the GT with the highest score (if the score is above the threshold). When a GT has no predictions with a matching score above the threshold, the matcher assigns the prediction with the highest score to it. This is controlled by the allow_low_quality_matches parameter in Matcher (in matcher_o2m.py), which is set to True by default.
However, there are cases where a GT A has no matched predictions, and the prediction p with the highest score to it is assigned to a different GT B. In this scenario, prediction p remains assigned to B, leaving GT A without any matched predictions.

Hi, it cannot, but this case is rare. The o2m matcher initially computes the matching score between all GTs and all predictions, then assigns each prediction to the GT with the highest score (if the score is above the threshold). When a GT has no predictions with a matching score above the threshold, the matcher assigns the prediction with the highest score to it. This is controlled by the allow_low_quality_matches parameter in Matcher (in matcher_o2m.py), which is set to True by default.
However, there are cases where a GT A has no matched predictions, and the prediction p with the highest score to it is assigned to a different GT B. In this scenario, prediction p remains assigned to B, leaving GT A without any matched predictions.

How to compute the loss of GT A in this condition? ignoring or any other operation?

Hi, it cannot, but this case is rare. The o2m matcher initially computes the matching score between all GTs and all predictions, then assigns each prediction to the GT with the highest score (if the score is above the threshold). When a GT has no predictions with a matching score above the threshold, the matcher assigns the prediction with the highest score to it. This is controlled by the allow_low_quality_matches parameter in Matcher (in matcher_o2m.py), which is set to True by default.
However, there are cases where a GT A has no matched predictions, and the prediction p with the highest score to it is assigned to a different GT B. In this scenario, prediction p remains assigned to B, leaving GT A without any matched predictions.

How to compute the loss of GT A in this condition? ignoring or any other operation?

Hi, in this case, the loss of GT A is ignoring, treating as the case where no predictions are matched for GT A.

Thks so much ^_^


Add a new example about Boolean Operation

Overview: What does this pull request change?

Links to added or changed documentation pages

https://manimce--2228.org.readthedocs.build/en/2228/

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

could we merge scaling and moving the shapes into one play call?

I didn't understand what you meant exactly, maybe if many people like it would be good(I haven't tried it locally)?

could we merge scaling and moving the shapes into one play call?

I didn't understand what you meant exactly, maybe if many people like it would be good(I haven't tried it locally)?

I meant that you should consider applying my suggestions -- all done now. :-)


Pass through Authentication headers

Headers like authentication should proxy through.

Done, need to add more headers.


Bump Istio to 1.19.3

This patch mumps istio manifest version to 1.19.3 which fixes the security vulnerabilities.

/lgtm
/approve


Can not connect to camera.

I try to build app with react-native-document-scanner, use sample code. But when i run on device, my app can not connect to camera. It only show button Flash, text at bottom and all white screen(can't connect to camera).
someone know to fix it? Many thanks.

Hi, are you running the demo on an actual device ? Camera does not work on simulator. Also have you ran react-native link ?

Le 1 oct. 2017 à 02:50, Phạm Trung Đức<EMAIL_ADDRESS>a écrit :
I try to build app with react-native-document-scanner, use sample code. But when i run on device, my app can not connect to camera. It only show button Flash, text at bottom and all white screen(can't connect to camera).
someone know to fix it? Many thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@Michaelvilleneuve Yes, i'm sure that i run on real device, and run react-native link. I think something is broken in your bridge code.

Can you try changing data.image to data.croppedImage in index.ios.js.
I think that I forgot to update the example project.

Ok I just tested successfully the example project. I just published a fix regarding an issue in the example project with react dependency and regarding the above comment. Aside from that it was working just as expected.
Please provide more detail. Are you sure you are running the project with an iPhone?

I just try to run your Example, and it work.
Thank you Michaelvilleneuve.
I hope you can make a quick video to setup your two awsome library as well.Thanks.

Cool :). I'll try to integrate the cropper library as well to the example project this week. I'll just make a shell script that will automate the process, I guess it will be simpler

Hi Michaelvilleneuve,
I ran your lib in ReactNative-iOS project and it work perfectly,
so I provide you some native android scan document library, hope you can
make your libe work with android too.
Thank you so much.
2017-10-03 13:58 GMT+07:00 Michaël Villeneuve<EMAIL_ADDRESS>
Closed #10
https://github.com/Michaelvilleneuve/react-native-document-scanner/issues/10
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Michaelvilleneuve/react-native-document-scanner/issues/10#event-1275385123,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARLXrluwvhA8a2Lc-v4LTDVmgMVoGAveks5sodr_gaJpZM4Ppvfs
.


Haskell: added Stormer Verlet and Velocity Verlet

Added all methods to Verlet algorithms.
Yay #hipsterhacktoberfest #394
@leios I think your Julia code for calculating the velocity in Stormer Verlet is not correct. You use v += a * dt instead of v = (pos - prev_pos) / dt, which actually yields better results but it's not the method you explain in the text.

Sorry for closing and re-opening I just want to check if this will add the PR on hacktoberfest. I won't do it for my other PRs.


Ysystem Updated sheet to revised edition and fixed damage bugs

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] This sheet has been made on behalf of, or by, the game's publisher.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

Updated rules to match revised edition (collaboration bonuses and difficult ranges)
Fixed bugs on damage rolls

Character Sheet Info Roll20 Internal Use only.


Added CSS styles and animations to student-board.component.html

in the student-board.html the css code was missing there was no styling and no design no coloring in student-board.html in components so i added css styling in the html code

@MrHydrolifker Please re-allign the buttons and make it responsive and open a new PR to merge it.


How do I exclude ollama?

What's the correct way to stand up this container so it's only dependent on OpenAI?
Here's what I tried:
In /frontend, I ran:
npm install
npm run build -- --mode hosted

Then I copied everything in /frontend/dist to /backend/assets/dist
After that, I stood up a kubernetes deployment, service, etc for the container image using the following env variables:
  OPENAI_API_KEY: [[The actual OpenAI API Key]]
  OPENUI_HOST: https://openui.mydomain.com

Once the container is fully deployed, I go to https://openui.mydomain.com where I'm met with this error:
Unexpected Application Error!
404 Not Found

Relevant logs of the backend container:
INFO (openui):  Starting OpenUI AI Server created by W&B...
INFO (openui):  Running API Server
INFO (uvicorn.error):  Started server process [1]
INFO (uvicorn.error):  Waiting for application startup.
DEBUG (openui):  Starting up server in 1...
INFO (uvicorn.error):  Application startup complete.
INFO (uvicorn.error):  Uvicorn running on http://<IP_ADDRESS>:7878 (Press CTRL+C to quit)
INFO (uvicorn.access):  <IP_ADDRESS>:35432 - "GET /ai/new HTTP/1.1" 200
INFO (uvicorn.access):  <IP_ADDRESS>:35432 - "GET /assets/index-1-JB3fie.css HTTP/1.1" 200
INFO (uvicorn.access):  <IP_ADDRESS>:35432 - "GET /favicon.png HTTP/1.1" 200
INFO (uvicorn.access):  <IP_ADDRESS>:35442 - "GET /ai/new HTTP/1.1" 200
INFO (uvicorn.access):  <IP_ADDRESS>:48982 - "GET / HTTP/1.1" 200
INFO (uvicorn.access):  <IP_ADDRESS>:59198 - "GET /assets/index-CXsVPYno.js HTTP/1.1" 304
INFO (uvicorn.access):  <IP_ADDRESS>:48982 - "GET /assets/textarea-LuEh5BNF.js HTTP/1.1" 304
INFO (uvicorn.access):  <IP_ADDRESS>:48982 - "GET /v1/session HTTP/1.1" 200
ERROR (openui):  Server Error: All connection attempts failed
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 373, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 216, in handle_async_request
    raise exc from None
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 196, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
    raise exc
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 122, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/openui/server.py", line 305, in ollama_models
    return await ollama.list()
           ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 617, in list
    response = await self._request('GET', '/api/tags')
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 343, in _request
    response = await self._client.request(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1574, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1661, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1689, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1763, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed
INFO (uvicorn.access):  <IP_ADDRESS>:48986 - "GET /v1/ollama/tags HTTP/1.1" 500
ERROR (uvicorn.error):  Exception in ASGI application
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 373, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 216, in handle_async_request
    raise exc from None
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 196, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
    raise exc
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 122, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/openui/server.py", line 305, in ollama_models
    return await ollama.list()
           ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 617, in list
    response = await self._request('GET', '/api/tags')
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 343, in _request
    response = await self._client.request(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1574, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1661, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1689, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1763, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed
INFO (uvicorn.access):  <IP_ADDRESS>:48442 - "GET /v1/session HTTP/1.1" 200
ERROR (openui):  Server Error: All connection attempts failed
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 373, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 216, in handle_async_request
    raise exc from None
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 196, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
    raise exc
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 122, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/openui/server.py", line 305, in ollama_models
    return await ollama.list()
           ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 617, in list
    response = await self._request('GET', '/api/tags')
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 343, in _request
    response = await self._client.request(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1574, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1661, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1689, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1763, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed
INFO (uvicorn.access):  <IP_ADDRESS>:48442 - "GET /v1/ollama/tags HTTP/1.1" 500
ERROR (uvicorn.error):  Exception in ASGI application
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 373, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 216, in handle_async_request
    raise exc from None
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 196, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
    raise exc
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 122, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/openui/server.py", line 305, in ollama_models
    return await ollama.list()
           ^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 617, in list
    response = await self._request('GET', '/api/tags')
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 343, in _request
    response = await self._client.request(method, url, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1574, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1661, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1689, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1763, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed
INFO (uvicorn.access):  <IP_ADDRESS>:53872 - "GET /ai/new HTTP/1.1" 200```

Looking through the inspector suggests that after GET /v1/session HTTP/1.1 should be something along the lines of GET /tags

And I'm assuming that's what's causing the 404 Not Found error.

Hey @jedarden currently the container always try to connect to Ollama but the UI should fail gracefully when it can't connect.  Are you seeing any errors in the UI or interface?   If not, you can safely ignore these errors as the UI catches them and just doesn't display the option to use Ollama.  If you are seeing an issue with the interface let me know what that is and we can address it, it's likely unrelated to the /tags request error.

I guess the confusion here is where you're seeing:

Unexpected Application Error!
404 Not Found

Is that just what you're seeing in the logs or is the UI not rendering for you?

UI Wasn't rendering and just showing that text.
Ended up using a different tool to figure out how to change the typescript.
Changed line 125 in HtmlAnnotator.tsx so hardcode my domain as iframeSrc.
So instead of:
	const iframeSrc =
		import.meta.env.MODE === 'hosted' ||
		document.location.hostname.endsWith('github.dev')
			? 'https://wandb.github.io'
			: 'http://<IP_ADDRESS>:7878'

It now reads
const iframeSrc ='https://openui.mydomain.com'

This fixes the iframe issue where the URL was http://<IP_ADDRESS>:7878/openui/index.html?buster=113.
However, I don't really know how to make this front end component dynamic so that it could be deployed to any environment.

It think we should change that line to:
const iframeSrc =
		import.meta.env.MODE === 'hosted' ||
		document.location.hostname.includes("<IP_ADDRESS>")
			? 'http://<IP_ADDRESS>:7878' : 'https://wandb.github.io'

That will always use the github hosted domain when its not running on localhost which is generally just for development.  You don't actually want it on the same domain as the parent page for security reasons.  It means a user can run arbitrary javascript on your domain which is bad.  Using the github.io domain sandboxes the iframe so it's more secure.

I just merged the fix mentioned into main.  Let me know if that didn't work.

A quick note. When I tried using the most recent commit, this log output was presented:
wandb: Unpatching OpenAI completions
INFO (openui):  Starting OpenUI AI Server created by W&B...
INFO (openui):  Running API Server
INFO (uvicorn.error):  Started server process [1]
INFO (uvicorn.error):  Waiting for application startup.
DEBUG (openui):  Starting up server in 1...
INFO (uvicorn.error):  Application startup complete.
INFO (uvicorn.error):  Uvicorn running on http://<IP_ADDRESS>:7878 (Press CTRL+C to quit)

The last line in particular is listening on <IP_ADDRESS> in a kubernetes environment, which means connections from the pod are the only ones accepted.
I did a blunt replacement of <IP_ADDRESS> with <IP_ADDRESS> to get this part working.
The new log output is:
wandb: Unpatching OpenAI completions
INFO (openui):  Starting OpenUI AI Server created by W&B...
INFO (openui):  Running API Server
INFO (uvicorn.error):  Started server process [1]
INFO (uvicorn.error):  Waiting for application startup.
DEBUG (openui):  Starting up server in 1...
INFO (uvicorn.error):  Application startup complete.
INFO (uvicorn.error):  Uvicorn running on http://<IP_ADDRESS>:7878 (Press CTRL+C to quit)

When I tried generating the output, I get this:

The iframe url was 'http://<IP_ADDRESS>:7878/openui/index.html?buster=113' Maybe from when I override the <IP_ADDRESS>.

@jedarden apologies for the delay.  Definitely don't replace <IP_ADDRESS> in the codebase.  Instead you can set the OPENUI_ENVIRONMENT=production environment variable and the servere will listen on <IP_ADDRESS> instead of <IP_ADDRESS>, you can see that logic here.
Also, when I last pushed the fix I had forgotten to build the frontend so definitely pull the latest main branch.

httpx.ConnectError: All connection attempts failed

代码是最新拉取的 但依旧有这个问题

File "/app/openui/server.py", line 301, in ollama_models
return await ollama.list()
^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 629, in list
response = await self._request('GET', '/api/tags')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/ollama/_client.py", line 351, in _request
response = await self._client.request(method, url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1574, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1661, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1689, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 1763, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
with map_httpcore_exceptions():
File "/usr/local/lib/python3.12/contextlib.py", line 158, in exit
self.gen.throw(value)
File "/venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed

INFO (openui):  Starting OpenUI AI Server created by W&B...
INFO (openui):  Running API Server
INFO (uvicorn.error):  Started server process [1]
INFO (uvicorn.error):  Waiting for application startup.
DEBUG (openui):  Starting up server in 1...
INFO (uvicorn.error):  Application startup complete.
INFO (uvicorn.error):  Uvicorn running on http://<IP_ADDRESS>:7878 (Press CTRL+C to quit)
INFO (uvicorn.access):  <IP_ADDRESS>:35394 - "GET / HTTP/1.1" 200
INFO (uvicorn.access):  <IP_ADDRESS>:35394 - "GET /v1/session HTTP/1.1" 200
ERROR (openui):  Server Error: All connection attempts failed


catch sync callback exceptions

Catch sync exceptions in success callbacks and sync methods returning a promise and emit a promise rejection. These exceptions would otherwise be unhandled exceptions and the promise never resolve nor reject.
Please check whether a Promise rejection is the desired behavior everywhere or whether some promises should resolve with undefined.

Codecov Report

Merging #20 into master will decrease coverage by 0.21%.
The diff coverage is 39.13%.

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
- Coverage   69.21%   68.99%   -0.22%
==========================================
  Files          29       29
  Lines        2274     2287      +13
==========================================
+ Hits         1574     1578       +4
- Misses        700      709       +9

Impacted Files
Coverage Δ

src/main/platform/browser/IDBBackend.js
53.33% <35%> (-1.7%)
:arrow_down:

src/main/generic/InMemoryBackend.js
54.02% <66.66%> (-0.1%)
:arrow_down:

Continue to review full report at Codecov.

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


are there any examples on mouse event on gui.Image

I am wondering how to handle the mouse event on gui.Image? Are there any examples?
Thanks.

Hello @longswordinhand. The mouse events for the Image are the same available for the generic Widget class.
You can also use the Editor to link events to images.
What you need to do exactly?

Thanks a lot for your kind answers. I would like to create an application to have some mouse interaction on an image, such as draw a circle on an image using a mouse.
If there are examples, it will be very helpful.
Thanks again.

Hello @longswordinhand. The mouse events for the Image are the same available for the generic Widget class.
You can also use the Editor to link events to images.
What you need to do exactly?


tests/tcp-hdr: actually test tcp-hdr keyword - v1

Noticed that the tcp-hdr keyword test rule was actually using tcp.mss. Adjusted it to use tcp.hdr instead.

Merged in #1437, thanks!


[Feature Request] Batch update glossaries

          Hey @Avimitin how did you plan on the Glossar API being used? I'm trying to add multiple entires, but can't really figure out how you intended the .source and .target functions being used since those only add a single entry and you can't really chain call them either looking at the source?

Originally posted by @turulix in https://github.com/Avimitin/deepl-rs/issues/21#issuecomment-1964882006

Fixed in #21.


Deterministic algorithm for invitation acceptance

As recommended in WWDC 2014 session 709. Use the hash value of the
MCPeerID object and whoever has the greater hash value can accept the
invitation.
http://asciiwwdc.com/2014/sessions/709?q=multipeer

Actually just testing this and it looks like it invites itself possible because there are two MCSession's. One in the advertiser and one in the browser.

I have noticed the problems that this pull request addresses. @jpsim, please merge this in.

There is another improvement that I am currently doing at a higher level – which is to stop/start the transceiver and create a new session whenever there is a disconnect and zero connected clients.
This is because currently the PeerKit code stops advertising (if it accepts an invitation). This makes sense if there is a cluster of PeerKit devices for perhaps only one to advertise, but maybe all devices should always be advertising. Contrary to the advice found on the interwebs.

Many many many thanks for this, @alexanderjarvis!

@jpsim no problem :)


Failed to setup

Logger: homeassistant.helpers.frame
Source: helpers/frame.py:103
First occurred: 18:45:16 (2 occurrences)
Last logged: 18:45:16
Detected integration that uses deprecated async_get_registry to access device registry, use async_get instead. Please report issue to the custom component author for eero using this method at custom_components/eero/init.py, line 149: device_registry = await hass.helpers.device_registry.async_get_registry()
Detected integration that uses deprecated async_get_registry to access entity registry, use async_get instead. Please report issue to the custom component author for eero using this method at custom_components/eero/init.py, line 150: entity_registry = await hass.helpers.entity_registry.async_get_registry()

My existing integration has stopped working with this same error in the log.

My setup failed after I made some changes and changed my guest wifi SSID. I removed the intergeneration from devices and then just re-added it. Worked like a charm.

This has been fixed as of 1.2.1


npm install node-sass fails

<EMAIL_ADDRESS>install C:\omitted
node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-57_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-57_binding.node":
HTTP error 404 Not Found
Looking into it, 3.13.1 only has release files up to /win32-x64-51_binding.node
https://github.com/sass/node-sass/releases/tag/v3.13.1

when i used -g it worked properly and got the latest version...
<EMAIL_ADDRESS>install C:\omitted
node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.3/win32-x64-57_binding.node
Download complete..] - :

Correct, Node 8 is only supported with 4.5.3

if node 8 is only supported with 4.5.3 then why would running 'nom install node-sass' request version 3.13.1 ?

You can run npm ls node-sass to see which dependency is pulling in the
older node-sass.
On 14 Jun. 2017 2:42 am, "skaraman"<EMAIL_ADDRESS>wrote:

if node 8 is only supported with 4.5.3 then why would running 'nom install
node-sass' request version 3.13.1 ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sass/node-sass/issues/2014#issuecomment-308176990,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAjZWPD7JjFwBiTwD19AzONnV5twrh88ks5sDrvzgaJpZM4N31Pn
.

Run npm install node-sass@latest -g
Modify package.json from your project to new version of node-sass
Run npm install

It works for me.


make ce- optional for bold/sbref modalities

Some studies make use of mion/ferumoxytol as a contrast enhancing agent for fmri data, e.g. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4843437/
should also be considered for the epi modality, as it could be present while this field map is acquired.

Sounds reasonable to me. Could you open a Pull Request with those changes? Thanks in advance.


Explictly import Na,K,Leak from pospischil

I got feedback that it is unintuitive that inserting HH() is different from inserting Na(), K(), Leak() separately. As a first step towards making this more clear, I am now importing these channels from jx.channels.pospischil explicitly in the tutorials.

I guess they are different from the HH() channels though. I think if might be easier to just split the HH channels apart, we can still keep HH() for convenience though where HH() just combines hh.Na(), hh.K(), hh.Leak().


Evaluate the use of changeDate in sl-date-picker and sl-date-range-picker

Currently, both sl-date-picker and sl-date-range-picker place changeDate listeners on the start date input dom element. However, the listener from sl-date-picker does not seem to serve any purpose. Evaluate if the listener should be removed from sl-date-picker or if the listener should be removed from sl-date-range-picker and action bubbling should be used.

Replaced by https://github.com/softlayer/sl-ember-components/issues/454

Replaced by https://github.com/softlayer/sl-ember-components/issues/455


Computed contamination values for 0 sample(s

Hello,
I am trying to run the tool on a multiple sample VCF with over 200 samples. However, I am keep getting no output.  Please see my command and log
./sceVCF test.vcf.gz -f LAD -o out -d 5,100 -q 5 -s Samples.txt
[14:40:19-202] - INFO: SCE-VCF v0.1.2
[14:40:19-202] - ARG: Input VCF: @["test.vcf.gz"]
[14:40:19-202] - ARG: Output: out
[14:40:19-202] - ARG: AD field: LAD
[14:40:19-202] - ARG: AF field: AF
[14:40:19-202] - ARG: Is refAF: false
[14:40:19-202] - ARG: REF AF limits: 0.1,0.9
[14:40:19-202] - ARG: Het AB limit: 0.25,0.75
[14:40:19-202] - ARG: Min GQ: 5
[14:40:19-202] - ARG: DP limit: 5,100
[14:40:19-202] - ARG: Samples Samples.txt
[14:40:19-202] - INFO: Reading samples list from file: Samples.txt
[14:40:19-203] - INFO: Imported 283 sampless
[14:40:19-204] - INFO: Variant processing started
[14:40:19-204] - INFO: Processing file test.vcf.gz
[14:40:21-961] - INFO: 50000 variants processed. Last batch: 50000 in 2 seconds and 756 milliseconds
[14:40:24-757] - INFO: 100000 variants processed. Last batch: 50000 in 2 seconds and 796 milliseconds
[14:40:27-546] - INFO: 150000 variants processed. Last batch: 50000 in 2 seconds and 788 milliseconds
[14:40:30-294] - INFO: 200000 variants processed. Last batch: 50000 in 2 seconds and 748 milliseconds
[14:40:32-997] - INFO: 250000 variants processed. Last batch: 50000 in 2 seconds and 702 milliseconds
[14:40:35-821] - INFO: 300000 variants processed. Last batch: 50000 in 2 seconds and 824 milliseconds
[14:40:38-647] - INFO: 350000 variants processed. Last batch: 50000 in 2 seconds and 825 milliseconds
[14:40:41-412] - INFO: 400000 variants processed. Last batch: 50000 in 2 seconds and 765 milliseconds
[14:40:44-192] - INFO: 450000 variants processed. Last batch: 50000 in 2 seconds and 779 milliseconds
[14:40:46-909] - INFO: 500000 variants processed. Last batch: 50000 in 2 seconds and 714 milliseconds
[14:40:52-318] - INFO: 600000 variants processed. Last batch: 100000 in 5 seconds and 408 milliseconds
[14:40:57-501] - INFO: 700000 variants processed. Last batch: 100000 in 5 seconds and 183 milliseconds
[14:41:02-886] - INFO: 800000 variants processed. Last batch: 100000 in 5 seconds and 384 milliseconds
[14:41:08-117] - INFO: 900000 variants processed. Last batch: 100000 in 5 seconds and 230 milliseconds
[14:41:13-174] - INFO: 999851 variants processed, 0 vars ignored: 0 multiallelic, 0 indels, 0 outside ref AF limits, 0 missing AF tag
[14:41:13-174] - INFO: Computing contamination values
[14:41:13-174] - INFO: Computed contamination values for 0 sample(s) in 53 seconds and 964 milliseconds

Hi there, Im getting the same:
[12:01:06-366] - INFO: 369120692 variants processed, 339343248 vars ignored: 6216433 multiallelic, 333126815 indels, 0 outside ref AF limits, 0 missing AF tag
[12:01:06-370] - INFO: Computing contamination values
[12:01:06-370] - INFO: Computed contamination values for 0 sample(s) in 13 minutes, 32 seconds, and 914 milliseconds
What should I do?

Hi,
I'm investigating this, and it seems the issue is that there are no variants to be evaluated after applying some of the filters (PASS, DP). These 2 are currently evaluated before the contamination object is initialized, and thus, if a sample has no PASS variant within the DP limits, it is not considered at all.
I'm working now to update the code so that it gives a clear warning about this and so that all samples are always considered, even if they have no usable data.

While I perform a final test, you can try this new executable. If my previous hypothesis on the source of this issue is correct, then this new version should work and give a more informative log about samples with no HQ variants available.
Let me know how it works for you.
sceVCF_0.1.3-RC1.gz

I've posted a new release v0.1.3.
Let me know if this solves the issue, at least in terms of the better log.

I assume this is solved.


Lead with quickstart

Trying out routing people towards runme open.

cc @joseeantonior @edeediong change to intro/home, fyi


Incorrect description on Waypoint: Understand Boolean Values

"In computer science, data structures are things that hold data. JavaScript has seven of these. For example, the Number data structure holds numbers. Let's learn about the most basic data structure of all: the Boolean."
Well I think Number, Boolean and the other seven that are not mentioned are essentially "Data types" rather than being "Data structures". Data structure are containers that hold data whereas data types describe data.
The details on the description might baffle newbies as they move along. Correct me if I'm wrong. :)

@Sayanc93 You are technically correct, which we all know is the best kind of correct.  :wink:
Generically, though Data Types are a subset of Data Structures.
I am currently working on a complete rewrite/revamp of the Basic Javascript curriculum.  I was going to rewrite this one anyway, I'll take your suggestion under advisement.

Awesome :smile:

Done. Closing this issue. See https://github.com/FreeCodeCamp/FreeCodeCamp/blob/staging/seed/challenges/01-front-end-development-certification/basic-javascript.json#L38.


Delete cookies not working with adapter

Summary.
Using the requests-wsgi-adapter code, deleting cookies (eg using httpbin) doesn't work.  I wrote a test that demonstrates it:  https://github.com/Singletoned/requests-wsgi-adapter/blob/feature/delete-cookies/tests.py#L77
The equivalent code using requests and httpbin.org works fine, but using requests, requests-wsgi-adapter and httpbin as a wsgi app, it fails to delete the cookie.
# This works as expected

import requests

session = requests.Session()

response = session.get("http://httpbin.org/cookies/set?flim=flam&flooble=flumble")
print(response.json())
assert response.json()['cookies'] == {'flooble': 'flumble', 'flim': 'flam'}

response = session.get("http://httpbin.org/cookies/delete?flim=flam")
print(response.json())
assert response.json()['cookies'] == {'flooble': 'flumble'}

I imagine the fact that is doesn't work is a result of the interface between requests and requests-wsgi-adapter, but I can't work out what is going wrong.  Any help investigating this would be greatly appreciated.
I wonder if it might be something to do with the cookie domain...
Expected Result
I expect the flim cookie to not be in the response anymore.
Actual Result
Rather than deleting the cookie it appears to do nothing.
Reproduction Steps
# pip install httpbin requests-wsgi-adapter
# This fails
import httpbin
import requests

from wsgiadapter import WSGIAdapter

session = requests.session()
session.mount('http://localhost', WSGIAdapter(app=httpbin.app))
session.get(
    "http://localhost/cookies/set?flimble=floop&flamble=flaap")
response = session.get("http://localhost/cookies")
assert response.json() == {
    'cookies': {'flimble': 'floop', 'flamble': 'flaap'}}
response = session.get(
    "http://localhost/cookies/delete?flimble")
result = response.json()
expected = {'cookies': {'flamble': 'flaap'}}
assert result == expected, result

System Information
$ python -m requests.help

{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": ""
  },
  "implementation": {
    "name": "CPython",
    "version": "3.6.2"
  },
  "platform": {
    "release": "16.7.0",
    "system": "Darwin"
  },
  "pyOpenSSL": {
    "openssl_version": "",
    "version": null
  },
  "requests": {
    "version": "2.18.1"
  },
  "system_ssl": {
    "version": "100020cf"
  },
  "urllib3": {
    "version": "1.22"
  },
  "using_pyopenssl": false
}

What are the response headers for each request in both cases?

These are the failing headers using the wsgi adapter:
[('Content-Type', 'text/html; charset=utf-8'),
 ('Content-Length', '223'),
 ('Location', '/cookies'),
 ('Set-Cookie', 'flimble=floop; Path=/'),
 ('Set-Cookie', 'flamble=flaap; Path=/'),
 ('Access-Control-Allow-Origin', '*'),
 ('Access-Control-Allow-Credentials', 'true'),
 ('X-Powered-By', 'Flask'),
 ('X-Processed-Time', '0')]

[('Content-Type', 'application/json'),
 ('Access-Control-Allow-Origin', '*'),
 ('Access-Control-Allow-Credentials', 'true'),
 ('X-Powered-By', 'Flask'),
 ('X-Processed-Time', '0'),
 ('Content-Length', '71')]

[('Content-Type', 'text/html; charset=utf-8'),
 ('Content-Length', '223'),
 ('Location', '/cookies'),
 ('Set-Cookie',
  'flimble=; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/'),
 ('Access-Control-Allow-Origin', '*'),
 ('Access-Control-Allow-Credentials', 'true'),
 ('X-Powered-By', 'Flask'),
 ('X-Processed-Time', '0')]

[('Content-Type', 'application/json'),
 ('Access-Control-Allow-Origin', '*'),
 ('Access-Control-Allow-Credentials', 'true'),
 ('X-Powered-By', 'Flask'),
 ('X-Processed-Time', '0'),
 ('Content-Length', '71')]

And these are the passing ones using requests against httpbin.org

Connection: keep-alive
Server: meinheld/0.6.1
Date: Wed, 01 Nov 2017 20:41:15 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 223
Location: /cookies
Set-Cookie: flim=flam; Path=/
Set-Cookie: flooble=flumble; Path=/
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
X-Powered-By: Flask
X-Processed-Time: 0.00153303146362
Via: 1.1 vegur

Connection: keep-alive
Server: meinheld/0.6.1
Date: Wed, 01 Nov 2017 20:41:14 GMT
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
X-Powered-By: Flask
X-Processed-Time: 0.00084400177002
Content-Length: 69
Via: 1.1 vegur

Connection: keep-alive
Server: meinheld/0.6.1
Date: Wed, 01 Nov 2017 20:41:15 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 223
Location: /cookies
Set-Cookie: flim=; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
X-Powered-By: Flask
X-Processed-Time: 0.00103402137756
Via: 1.1 vegur

Connection: keep-alive
Server: meinheld/0.6.1
Date: Wed, 01 Nov 2017 20:41:15 GMT
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
X-Powered-By: Flask
X-Processed-Time: 0.000602006912231
Content-Length: 48
Via: 1.1 vegur

Sorry that they are in different formats.

Hrm. Those seem just fine. I suspect requests-wsgi adapter is not correctly shimming the underlying response into a format that cookielib likes.

These are the cookies from each response:
<RequestsCookieJar[<Cookie flamble=flaap for example.com/>, <Cookie flimble=floop for example.com/>]>
<RequestsCookieJar[]>
<RequestsCookieJar[<Cookie flimble= for example.com/cookies>]>
<RequestsCookieJar[]>

They seem correct.

Although I notice that the deleted cookie is for "example.com/cookies" not "example.com/".  I wonder if that could affect it?

Yup, that will do it. That is incorrect though: the path is specified in the cookie header.

That stuff is handled by requests.cookies and std lib's http.cookiejar.  The interface is somewhat complicated (with MockReqeusts and email messages and stuff), but I'm trying to follow it.

I've got it down to a minimum failing example.
import requests
import http.cookiejar
from requests.structures import CaseInsensitiveDict

class MockMessage(object):
    def __init__(self, headers):
        self._headers = CaseInsensitiveDict(headers)

    def getheaders(self, name, default=None):
        header = self._headers.get(name)
        if default is None:
            default = []
        if header is None:
            return default
        return [s.strip() for s in header.split(',')]

    get_all = getheaders

class Stub(object):
    def __init__(self, **kwargs):
        for key in kwargs:
            setattr(self, key, kwargs[key])

cookies = http.cookiejar.CookieJar()

res = Stub(
    _original_response=Stub(
        msg=MockMessage(
            {
                'Set-Cookie': 'flimble=; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/',})
    ))

req = Stub(
    **{
        'method': 'GET',
        'url': 'http://example.com/cookies/delete?flimble',
        'headers': {'Host': 'example.com'}})

print(cookies)

result = requests.cookies.extract_cookies_to_jar(cookies, req, res)

print(result)
print(cookies)

It seems to be the line [s.strip() for s in header.split(',')] that is causing the problem, as it is naively splitting the header on commas.  I can't see what the correct solution would be though.  And I can't find any code that does a better job of parsing the headers.

For cookie headers, don’t split them. Just check the header names first.

Unfortunately that doesn't work.  They don't get parsed at all if I do that and then no cookies are detected.

Ah, ok, sorry. The problem you have here is that a different layer (maybe yours, maybe Requests), is joining the two Set-Cookie headers at the start together with a comma. This isn't right, but it's a common behaviour when storing these headers in a dictionary. Really this needs to be solved by using a dictionary more like urllib3's HeaderDict, which is able to return a list of all the headers received rather than joining them.

Okay, I know where that's happening and it's easily fixable.  I think that fix my problems.  Is it reasonable to not handle joined Set-Cookie headers if a server sends them?  (Handling multiple separate headers is fine).  My code is only going to be dealing with WSGI servers, so I doubt anyone will have set them manually, nor will there be any major legacy issues.  Thanks for all your help with this. 😸

Yeah, it’s fine. 😁

Brilliant, thanks again for all your help with this.  I think I've got it sorted 😺