Support for fastapi.TestClient

Hi,
I've discovered an issue using mocket and end-to-end testing. In the code below, Mocket breaks the  TestClient, which is a FastAPI utility that is subclass of Request's Session, as it prevents it from sending the real requests to the app's host, causing the test to hang indefinitely. I only want to mock the requests made by the app, e.g. to "https://example.org/".
Is it possible to exclude hosts from mocket's grasp? The TestClient internal sets the base_url to "http://testserver".
import httpx
import pytest
from fastapi import FastAPI
from fastapi.testclient import TestClient
from mocket import mocketize
from mocket.mockhttp import Entry

app = FastAPI()

@app.get("/")
async def read_main() -> dict:
    async with httpx.AsyncClient() as client:
        r = await client.get("https://example.org/")
        return r.json()

# End-to-end test

@pytest.fixture
def client() -> TestClient:
    return TestClient(app)

@mocketize
def test_read_main(client: TestClient) -> None:
    Entry.single_register(Entry.GET, "https://example.org/", body='{"id": 1}')

    response = client.get("/")

    assert response.status_code == 200
    assert response.json() == {"id": 1}

It's not your TestClient that is calling https://example.org/, hence the decorator is not mocking that specific request.

If you debug the test the program never makes it into the FastAPI read_main function (of course, if you remove the mocketize decorator it does). So it seems that mocket is affecting TestClient, which is to be expected since its based on Requests

Mocket works monkey-patching the socket module (w/ ssl for supporting HTTPS). What is not registered should be able to reach the real destination, through a real socket. If it does not, there might be something wrong.
What I was trying to say is that in your scenario the call you want to mock happens outside mocket jurisdiction and it should not work as you expect. The fact that it gets stuck is definitely something to investigate.

Thanks again @mindflayer for all the help with this and previous issues. Unfortunately, I'm at a push to get these httpx changes in before next week, and our app is pretty small, so I'm going to pick up RESPX for this specific app. mocket is great though, I've used it on a bunch of other projects and will continue it being my go-to.
Here is a test that passes using RESPX without the issues around jurisdiction. Maybe it benefits from mocking the internals of HTTPX directly so that it isn't affected by this problem.  Hopefully, this is helpful for mocket nonetheless.
def test_respx(
    respx_mock: MockRouter,
    client: TestClient
) -> None:
    respx_mock.get("https://example.org/").mock(
        return_value=httpx.Response(200, json={"id": 1})
    )

    response = client.get("/")

    assert response.status_code == 200
    assert response.json() == {"id": 1}

Did you try to create the app from inside your test case?

Just gave it a try now. It still has the hanging issue so not able to see whether it made a difference to the mocked request. Also, this pattern is at odds with pytest's fixture-based approach (maybe you could put with Mocketizer in the fixture like we did in a previous issue, but that is also not so obvious):
import httpx
from fastapi import FastAPI
from fastapi.testclient import TestClient
from mocket import mocketize
from mocket.mockhttp import Entry
from respx import MockRouter

def create_app() -> FastAPI:
    app = FastAPI()

    @app.get("/")
    async def read_main() -> dict:
        async with httpx.AsyncClient() as client:
            r = await client.get("https://example.org/")
            return r.json()

    return app

@mocketize
def test_mocket() -> None:
    app = create_app()
    client = TestClient(app)

    Entry.single_register(Entry.GET, "https://example.org/", body='{"id": 1}')

    response = client.get("/")

    assert response.status_code == 200
    assert response.json() == {"id": 1}

Here is a test that passes using RESPX without the issues around jurisdiction

Of course using a mock for a specific client is a totally different approach, I am glad you found something that works for you.

I am still trying to put all the pieces together, but I have a suspect.
Fastapi TestClient is based on starlette.testclient which makes use of BlockingPortal from anyio. Copying from its documentation:
If you need to run async code from a thread that is not a worker thread spawned by the event loop, you need a blocking portal. This needs to be obtained from within the event loop thread.

This smells like something a bit outside the scope of Mocket.

In case you'd want to test something like that with Mocket, I'd suggest to use it for testing the functions/code behind your Fastapi service.

Interesting, thanks for looking into this @mindflayer

Ok after some more digging, I realized that the error is coming from the previous line. No wonder I was confused. Here is the stacktrace:
get_entry, mocket.py:437
get_entry, mocket.py:258
send, mocket.py:391
_write_to_self, selector_events.py:140
call_soon_threadsafe, base_events.py:797
run_sync_from_thread, _asyncio.py:959
_spawn_task_from_thread, _asyncio.py:989
start_task_soon, from_thread.py:369
call, from_thread.py:283
send, testclient.py:271
send, sessions.py:701
request, sessions.py:587
request, testclient.py:481
get, sessions.py:600
test_mocket, test_mocket.py:27

I'm not sure why but asyncio tries to write a null byte to the socket (see https://github.com/python/cpython/blob/129998bd7b133defa37c7529bfad9052c0022b5c/Lib/asyncio/selector_events.py#L139) but mocket has already "hijacked" the socket so the call fails.

Ah ok, so mocket expects a call to connect in order to set the address.

Specifically it looks like mocket doesn't really mock a "self-socket": see https://github.com/python/cpython/blob/main/Lib/asyncio/selector_events.py#L106-L107.

I think mocket needs to support the idea of a "self-socket" being mocked in order for it to support FastAPI's TestClient.

I'm not sure why but asyncio tries to write a null byte to the socket

The other day I left here. Thanks for making some more progress.

I think mocket needs to support the idea of a "self-socket"

Let's see what I can do. :)

The problem is that the connect() is supposed to happen in the async world, I guess.
https://github.com/python/cpython/blob/129998bd7b133defa37c7529bfad9052c0022b5c/Lib/asyncio/selector_events.py#L614

So, the two instances of socket created by socket.socketpair() are MocketSocket ones.
If I make this send(b'\0') pass the code is still stuck waiting forever:
Traceback (most recent call last):
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 495, in start_blocking_portal
    yield portal
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/starlette/testclient.py", line 454, in _portal_factory
    yield portal
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/starlette/testclient.py", line 266, in send
    response_complete = portal.call(anyio.Event)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 283, in call
    return cast(T_Retval, self.start_task_soon(func, *args).result())
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 369, in start_task_soon
    self._spawn_task_from_thread(func, args, {}, name, f)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 989, in _spawn_task_from_thread
    run_sync_from_thread(
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 961, in run_sync_from_thread
    return f.result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 441, in result
    self._condition.wait(timeout)
  File "/usr/lib/python3.10/threading.py", line 320, in wait
    waiter.acquire()
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 497, in start_blocking_portal
    portal.call(portal.stop, True)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 283, in call
    return cast(T_Retval, self.start_task_soon(func, *args).result())
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 369, in start_task_soon
    self._spawn_task_from_thread(func, args, {}, name, f)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 989, in _spawn_task_from_thread
    run_sync_from_thread(
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 961, in run_sync_from_thread
    return f.result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 441, in result
    self._condition.wait(timeout)
  File "/usr/lib/python3.10/threading.py", line 320, in wait
    waiter.acquire()
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/drizzt/repos/python-mocket/prova.py", line 26, in <module>
    response = client.get("/")
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/requests/sessions.py", line 600, in get
    return self.request("GET", url, **kwargs)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/starlette/testclient.py", line 476, in request
    return super().request(
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/starlette/testclient.py", line 270, in send
    raise exc
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/starlette/testclient.py", line 265, in send
    with self.portal_factory() as portal:
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/starlette/testclient.py", line 453, in _portal_factory
    with anyio.start_blocking_portal(**self.async_backend) as portal:
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/drizzt/repos/python-mocket/.venv/lib/python3.10/site-packages/anyio/from_thread.py", line 475, in start_blocking_portal
    with ThreadPoolExecutor(1) as executor:
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 637, in __exit__
    self.shutdown(wait=True)
  File "/usr/lib/python3.10/concurrent/futures/thread.py", line 235, in shutdown
    t.join()
  File "/usr/lib/python3.10/threading.py", line 1089, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.10/threading.py", line 1109, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
KeyboardInterrupt

@mindflayer I'm not sure I follow. Are you saying if you comment out the null byte send it still hangs? There are two portal.calls so you would have to comment out both of them.

The host and port aren't set until .connect is called in MocketSocket. Once it hits
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)

it is already failing. You can see the error message type object 'Mocket' has no attribute '_address' if you put a breakpoint there. The "hanging" after that is misleading I think.

Let me share my change with you, see this commit on the branch I've just pushed.

Thank for sharing! That clears it up as to what you're trying to do.
I think the null byte is fine. The problem is that the host and port aren't set yet when the null byte is written out and so the get_entry call fails. The exception is then swallowed by the context manager but you can print it out if you breakpoint at File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__. I'm currently struggling to figure out how to set the host and port as there is no call to .connect.

Well, that's not a problem any more after my change. Since it's just a "ping" we don't need to worry about it. The problem is that after that nothing happens.

Oh I see. The https://github.com/agronholm/anyio/blob/d9c2d9b3517e1137beb35a4a2cd56fb1af26a859/src/anyio/_backends/_asyncio.py#L961 hangs because it is waiting for the condition at self._condition.wait(timeout) (and the timeout by default is None).

Even if we change the timeout nothing really happens.

Well if you change the timeout, it certainly goes onto the next portal.call instead of hanging at the first one.

Ok so I see the event being scheduled onto the event loop (with https://github.com/python/cpython/blob/575f8880bf8498ee05a8e197fc2ed85db6880361/Lib/asyncio/base_events.py#L781) but for whatever reason I don't see the next event loop being scheduled. I wonder if that null byte is to say that the current event loop is finished.

The major difference between call_soon and call_soon_threadsafe, however, is that call_soon_threadsafe wakes up the event loop by calling loop._write_to_self() ." - https://stackoverflow.com/a/43275001

Maybe there is a way to detect "non-local" sockets and only mock those?

I am not sure I understand what you mean with that. Before a connect() happens, a socket is just a socket and you have no information about its purpose.

Like I said at first, the fact that this BlockingPortal plays with different threads is probably the root of the issues we see here, and I am sorry but I don't see a way to fix this.

I want to try out something completely different, making socket.socketpair() returning real socket instances. Let's see what happens.

socket is just a socket and you have no information about its purpose

Yup you're right. Pardon my stream of conscious.

socket.socketpair() returning real socket instances

Oh I like this idea. I still haven't figured out how the asyncio event loop works under the hood but it seems like it uses a socket pair (I'll call them "incoming" and "outgoing") and outside threads can write to the "outgoing" socket to wake it up. And because Mocket is mocking both the sockets but it doesn't actually send the contents of "outgoing" socket to the "incoming" socket, the event loop isn't woken up.

It's a kind of magic. <3

It drove me crazy, but here it is: https://pypi.org/project/mocket/3.10.8/
Feel free to pip install mocket==3.10.8.


Automate dependency maintenance

Automate periodic monitoring and upgrading of dependencies. This would help reducing the risk of running vulnerable versions of dependencies, while also minimizing the effort required to do so.

This is now completed by merging PR https://github.com/GoogleCloudPlatform/jit-access/pull/100


Reduce log level for transformation errors caused by optional classes

Logging these as warn has lead to confusion and was perceived as a potential bug/error in the agent repeatedly.
When Byte Buddy introspects a class and tries to resolve a referenced class which is not on the classpath,
it throws an exception.
This also changes the isPublic() matcher to be the last one so that no unnecessary
lookups which can potentially fail are made.

Whenever we get a Cannot resolve type description exception from Byte Buddy, we should check that the matchers don't force resolving a class prematurely as it has been the case in the AsyncInstrumentation.

Codecov Report

Merging #363 into master will decrease coverage by 0.03%.
The diff coverage is 72.72%.

@@             Coverage Diff              @@
##             master     #363      +/-   ##
============================================
- Coverage     72.39%   72.35%   -0.04%
  Complexity     1195     1195
============================================
  Files           131      131
  Lines          4484     4486       +2
  Branches        459      460       +1
============================================
  Hits           3246     3246
- Misses         1029     1031       +2
  Partials        209      209

Impacted Files
Coverage Δ
Complexity Δ

...lastic/apm/bci/bytebuddy/ErrorLoggingListener.java
50% <0%> (-16.67%)
3 <0> (ø)

...co/elastic/apm/jdbc/ConnectionInstrumentation.java
84.61% <100%> (ø)
7 <0> (ø)
:arrow_down:

...a/co/elastic/apm/servlet/AsyncInstrumentation.java
65.21% <100%> (ø)
7 <1> (ø)
:arrow_down:

...tic/apm/jdbc/PreparedStatementInstrumentation.java
52.63% <100%> (ø)
6 <0> (ø)
:arrow_down:

.../co/elastic/apm/jdbc/StatementInstrumentation.java
55.55% <100%> (ø)
6 <0> (ø)
: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 fc03a07...f146a43. Read the comment docs.


Update DisplaySharepointAnnouncements.md

Removing spaces

OPS Build status updates of commit ffc40c3:
:clock10: Preparing: average preparing time is 43 sec(s)

OPS Build status updates of commit ffc40c3:
:clock10: Incremental building: average incremental building time is 18 sec(s)

OPS Build status updates of commit ffc40c3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Articles/BusinessSolutions/CorporateCommunications/SharepointAnnouncementsonKaizala/DisplaySharepointAnnouncements.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Install Fails on OS X

On OS X 10.11 with python 2.7.12:
$ pip install opencv-python
Collecting opencv-python
  Could not find a version that satisfies the requirement opencv-python (from versions: )
No matching distribution found for opencv-python

If I try to explicitly install the wheel, I get:
opencv_python-<IP_ADDRESS>-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl is not a supported wheel on this platform.

Looks like this was caused by python being built with ucs4 support.


enhance:createdb - don't error out if db already exists

Description
Make "createdb" more robust by avoiding throwing fatal error if db already exists
Then, following a single blank line, a summary of the change and which issue is fixed, including

[ ] what is the problem being solved
UT repeatedly create "TEST_A" and "TEST_B", if one fails to clean up somehow, it will fail all future test case
[ ] why this is a good approach
If db already exists then no good to recreate it regardless
[ ] what are the shortcomings of this approach, if any
We yet don't know how DB destroy failed but it can be due to process killed while running.

Thank you @isoosiss7 ! I assume that you tested this new approach?

Yep this change is tested.


address port by index

    @joamatab The crux of the pull request I originally made was to be able to access ports by index in addition to key, enabling something like the following (after your changes):

import gdsfactory as gf

c = gf.Component()
w1 = c << gf.c.straight()
w2 = c << gf.c.straight(width=1)\

w2.connect('o1', w1['o2'])
# or
w2.connect(1, w1[2])

c.show()

Sometimes I know the order of the ports, but don't remember the name (or don't want to follow the "pn"/"on" convention suggested in the docs). The present form of the code in this pull request doesn't appear like it would support that—could we add that as a condition check? Like,
if key in ports:
    return self.ports[key]
elif isinstance(key, int):
    return self.ports.values()[key]
else:
    raise ...

Originally posted by @sequoiap in https://github.com/gdsfactory/gdsfactory/issues/794#issuecomment-1293875150

Troy comments:
hi @sequoiap , potentially something like this could be nice and could give a common way to access ports, despite different naming schemes which people might choose. however, i think we should put some thought into it before implementing.
for example, for a waveguide, it seems straightforward that port 0 would be your input and port 1 would be your output. however, what about for a 2x2 device? would you just number 0..3? I would think indices like (0, 0), (0,1), etc. would be easier to reason about. would be nice if there is also then consistency for accessing s-matrix values for simulation, etc.
in the meantime, it is fairly easy to rename your ports to a convention you prefer, if it is easier to remember. if you provide port_names to your PDK cross sections, many components (those which are extruded) will automatically start to take on those port names. for example, we don't use o1...n. we use in0/out0 etc.

Hi Sequoia and Troy,
i like the idea of addressing ports by index.
How about using a convention where we name them by index from bottom left and then go clockwise?
      3   4
      |___|_
2 -|           |- 5
    |           |
1 -|_ ____|- 6
    |        |
    8       7

Troy, I see the value of starting on port 0 but maybe starting with port 1 would be more consistent with sparameters
What do you think?
@tvt173


PoolTimeoutException

I just started to evalaute astyanax by testing out these listed code snipptes.  But I keep getting the same exception "com.netflix.astyanax.connectionpool.exceptions.PoolTimeoutException: PoolTimeoutException".  I'm pretty sure that I get all the  connection parameters correct.  Could anyone help? Thanks.

Do you have any other messages in the log?

Hello.
I had the same problem than you and it seems that adding slf4j in the classpath fixes it. Here is the complete list of jars I have in my classpath:
astyanax-0.8.9.jar
cassandra-all-0.8.9.jar
commons-lang-2.4.jar
guava-r08.jar
high-scale-lib-1.1.1.jar
joda-time-2.0.jar
libthrift-0.6.1.jar
log4j-1.2.16.jar
slf4j-api-1.6.1.jar
uuid-3.2.0.jar
Hope it will help you!
Thierry

Thanks a lot Thierry.
I added the slf4j-api-1.6.1.jar library and it works, althouogh I still get some errors as follows, but at least I'm able to access the database and do some simple query.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.


NBS: Implement streaming compaction

The current implementation for minor (non-reorganizing) compaction is to read into RAM the input tables, create a compacted table in memory and then persist. It also has the behavior of de-duplicating chunks.
However, especially for local (i.e. desktop/laptop) use, this becomes a big drag because as the resulting table no longer fits in physical RAM, the os is forced to swap.

I feel like a good step forward would be to have a compaction strategy that was
-Is mostly shared (code) between AWS and File
-Rather than extracting chunk-by-chunk, io.Copys from each source's chunks region to the destination (essentially concatinating the payload section of each table), and the recreating a new index at the end as a final step
-The AWS implementation can use Multipart Upload Copy semantics for tables > 5MB to avoid moving alot of data to/from S3.


Small safety filter

I had a bug report for one of my module which included the attached error message. I am not entirly certain what caused the invalid data to show up but this should prevent the error from coming up again.

Your solution doesn't help as far as I can tell.
layerGetElement returns a canvas placable if it finds one, if not it returns null.
I'll filter for null which should solve it.
Thanks for your input.


HTML

HTML
User Story
As a boot camp student,
I want a Prework Study Guide website,
so that I can find and read information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website in my browser
THEN I see four boxes titled HTML, CSS, Git, and JavaScript with associated notes listed

Added in box 1 of 4, HTML notes included.


Jekyll 3.0 compatibility

This plugin isn't compatible anymore with Jekyll 3.0
I've forked your repository and made it compatible again. Feel free to pull it in.
https://github.com/SimonBackx/related_posts-jekyll_plugin

Tests aren't working yet

Thanks @SimonBackx !

Thanks @SimonBackx.It works for Jekyll 3.0.2.

Great work, once the tests are working I'll pull it in.

Any chance to have it merged? Thanks

@kleuter yes, if you or anyone else fancy making the tests pass.


SRI Technical Debt: Ontology-KP Repo

Hi @balhoff and @cbizon, not sure if this repo is used anymore, does not look like much has happened here in a while. As part of the Translator priority for Technical Debt, I am creating this issue to determine what needs to happen to this repo> There are 27 PRs and 5 issues, please advise:

[ ] Determine if this repo needs to be kept or archived
[ ] Resolve PRs if to be kept
[ ] Update Documentation if to be kept
[ ] Any bug fixes?

Hi @tursynay, we can archive this repo.


Prefer using https_proxy for secure channels and http_proxy for insec…

Prefer using https_proxy over http_proxy.
If https_proxy is missing but http_proxy is provided instead, fallback on http_proxy so as to not to break existing usecases.
Fixes #9561

This change is

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  +2.8%     +48 src/core/ext/filters/client_channel/http_proxy.cc     +48  +2.8%
      +3.8%     +62 proxy_mapper_map_name                                 +62  +3.8%

 -+-+-+-+-+-+-+ MIXED                                             +-+-+-+-+-+-+-
  -0.0%     -16 [None]                                            +2.55Ki  +0.0%

  +0.0%     +32 TOTAL                                             +2.59Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  +2.8%     +48 src/core/ext/filters/client_channel/http_proxy.cc     +48  +2.8%
      +3.8%     +62 proxy_mapper_map_name                                 +62  +3.8%

 -+-+-+-+-+-+-+ MIXED                                             +-+-+-+-+-+-+-
  -0.0%     -16 [None]                                            +2.55Ki  +0.0%

  +0.0%     +32 TOTAL                                             +2.59Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  +0.0%     +16 [None]                                            +2.55Ki  +0.0%
  +2.8%     +48 src/core/ext/filters/client_channel/http_proxy.cc     +48  +2.8%
      +3.8%     +62 proxy_mapper_map_name                                 +62  +3.8%

  +0.0%     +64 TOTAL                                             +2.59Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  [ = ]       0 [None]                                            +2.58Ki  +0.0%
  +3.7%     +64 src/core/ext/filters/client_channel/http_proxy.cc     +64  +3.7%
      +4.7%     +78 proxy_mapper_map_name                                 +78  +4.7%

  +0.0%     +64 TOTAL                                             +2.64Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[trickle] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  [ = ]       0 [None]                                            +2.58Ki  +0.0%
  +3.7%     +64 src/core/ext/filters/client_channel/http_proxy.cc     +64  +3.7%
      +4.7%     +78 proxy_mapper_map_name                                 +78  +4.7%

  +0.0%     +64 TOTAL                                             +2.64Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

This looks reasonable, but I am concerned about the dependency on the security code.

Reviewed 4 of 13 files at r1, 1 of 2 files at r2, 2 of 2 files at r3, 6 of 6 files at r4.
Review status: all files reviewed, 4 unresolved discussions (waiting on @yashykt, @dgquintas, and @AspirinSJL)

BUILD, line 1071 at r4 (raw file):

        "src/core/ext/filters/client_channel/subchannel_index.h",
        "src/core/ext/filters/client_channel/uri_parser.h",
        "src/core/lib/security/credentials/credentials.h",

I don't think this is okay.  We can't depend on any of the security stuff in an insecure build of grpc, and the client channel code is used in insecure builds.
Also, why don't we have a similar change in build.yaml?

src/core/ext/filters/client_channel/http_proxy.cc, line 51 at r4 (raw file):

  GPR_ASSERT(user_cred != nullptr);
  char* uri_str = nullptr;
  /* Prefer using 'https_proxy' for secure channels and 'http_proxy' for

To avoid the dependency on the security code, how about we just unconditionally use https_proxy and then fall back to using http_proxy?

test/core/end2end/gen_build_yaml.py, line 60 at r4 (raw file):

    'h2_http_proxy': default_unsecure_fixture_options._replace(
        ci_mac=False, exclude_iomgrs=['uv'], supports_proxy_auth=True),
    'h2_https_proxy': default_secure_fixture_options._replace(

It seems a bit wasteful to duplicate the entire test fixture here, since the thing we're trying to test (the use of the different environment variable for secure vs. insecure) does not differ for any of the individual tests.  It might be better to instead add a single standalone test (not part of the end2end framework, although you can certainly reuse parts of the HTTP proxy fixture) that tests this.
Of course, this issue is moot if we change the code to do the same thing for secure and insecure channels.

test/core/end2end/fixtures/h2_https_proxy.cc, line 19 at r4 (raw file):

 */

/* This fixture runs end to end tests over a SSL connection with an http proxy.

The code we're testing doesn't actually care about SSL; it just cares that the channel is secure.  So we could use the fake security credentials here instead of SSL, which might be simpler.
Of course, this issue is moot if we change the code to do the same thing for secure and insecure channels.

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  +0.0%     +32 [None]                                            +2.30Ki  +0.0%
  +3.5%     +64 src/core/ext/filters/client_channel/http_proxy.cc     +64  +3.5%
      +3.7%     +64 proxy_mapper_map_name                                 +64  +3.7%

  +0.0%     +96 TOTAL                                             +2.36Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

BUILD, line 1071 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
I don't think this is okay.  We can't depend on any of the security stuff in an insecure build of grpc, and the client channel code is used in insecure builds.
Also, why don't we have a similar change in build.yaml?

Removed. build.yaml maybe already had those dependencies so it didn't need those changes.. anyway doesn't matter anymore

Comments from Reviewable

Review status: 0 of 1 files reviewed, 4 unresolved discussions (waiting on @markdroth, @yashykt, @dgquintas, and @AspirinSJL)

test/core/end2end/gen_build_yaml.py, line 60 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
It seems a bit wasteful to duplicate the entire test fixture here, since the thing we're trying to test (the use of the different environment variable for secure vs. insecure) does not differ for any of the individual tests.  It might be better to instead add a single standalone test (not part of the end2end framework, although you can certainly reuse parts of the HTTP proxy fixture) that tests this.
Of course, this issue is moot if we change the code to do the same thing for secure and insecure channels.

Removed!

test/core/end2end/fixtures/h2_https_proxy.cc, line 19 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
The code we're testing doesn't actually care about SSL; it just cares that the channel is secure.  So we could use the fake security credentials here instead of SSL, which might be simpler.
Of course, this issue is moot if we change the code to do the same thing for secure and insecure channels.

Removed!

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  +0.0%     +32 [None]                                               +424  +0.0%
  +3.5%     +64 src/core/ext/filters/client_channel/http_proxy.cc     +64  +3.5%
      +3.7%     +64 proxy_mapper_map_name                                 +64  +3.7%

  +0.0%     +96 TOTAL                                                +488  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                         FILE SIZE
 ++++++++++++++ GROWING                                           ++++++++++++++
  +0.0%     +48 [None]                                               +152  +0.0%
  +2.7%     +48 src/core/ext/filters/client_channel/http_proxy.cc     +48  +2.7%
      +2.8%     +48 proxy_mapper_map_name                                 +48  +2.8%

  +0.0%     +96 TOTAL                                                +200  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

failing test is unrelated . Created #15766 to track the error
Thanks for reviewing Mark!


CNV-40059: Align VirtualMachinePreferences empty page with new format

📝 Description
This PR is one of the PRs related to:
https://issues.redhat.com/browse/CNV-40059
Design doc:
https://docs.google.com/document/d/1q1J7QJPbklWNV02hqBIIi6uNwHKaipUFZLA3RJF5A9E
Update VirtualMachinePreferences list (User provided tab) empty state page to look more consistent within the UI. Hide unnecessary filtering, pagination and also Create button in the upper right corner of the page.
Additionally, in case there's some data and filtering shows zero results, prevent displaying unnecessary pagination.
Additionally, add little refactoring - use new useUserPreferences hook to get the related data in UserPreferenceList and PreferencePage components.
🎥 Screenshots
Before:
VirtualMachinePreferences empty state page:

VirtualMachinePreferences (non empty) list page with zero results after filtering:

After:
VirtualMachinePreferences empty state page:

VirtualMachinePreferences (non empty) list page with zero results after filtering:

@avivtur @pcbailey @upalatucci @metalice please review

/lgtm


Migrate SubNav component to TSX

This PR migrates the SubNav component to TypeScript as part of the TypeScript refactor.
WIP, working through a couple issues

Ahh, few more things to clean up in the tests.... 👀


Cap PyDantic version and build number

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)

Resolves #23.

Thanks @loadams
Maybe I would suggest setting the build number to 1000 instead of 1. That should put more weight to that build during dep solving (since it has an additional constraint).
Also do you want to be added as a maintainer to that feedstock so you can freely merge PRs in the future? Happy to keep reviewing them if that helps. If you do, you can add your name in the maintainers section.

Thanks @loadams
Maybe I would suggest setting the build number to 1000 instead of 1. That should put more weight to that build during dep solving (since it has an additional constraint).
Also do you want to be added as a maintainer to that feedstock so you can freely merge PRs in the future? Happy to keep reviewing them if that helps. If you do, you can add your name in the maintainers section.

Thanks for the review, and sure, I've made both of those changes.  Would definitely still want you to review them as well.


RegExp exec/match/split/etc return type should be (string | undefined)[], not string[]

/(a)|(b)/.exec('a') returns ['a', 'a', undefined]. The libs say string is the return array element type. But undefined is present if a reg exp group did not match.

https://github.com/microsoft/TypeScript/issues/17053#issuecomment-314154098

https://github.com/microsoft/TypeScript/issues/17053#issuecomment-314154098

Thanks @fatcerberus. Is there a way to opt out of this? It's been the root cause of two bugs in the project I'm working on and it really annoys the ESLint @typescript-eslint/no-unnecessary-condition because it believes it can't be undefined.

Thanks @fatcerberus. Is there a way to opt out of this? It's been the root cause of two bugs in the project I'm working on and it really annoys the ESLint @typescript-eslint/no-unnecessary-condition because it believes it can't be undefined.

Your only real option is to enable noUncheckedIndexedAccess which implicitly adds undefined to all array accesses, though that might prove to be an overly large hammer.

Your only real option is to enable noUncheckedIndexedAccess which implicitly adds undefined to all array accesses, though that might prove to be an overly large hammer.

Yer, that hammer is a bit too weighty for us. I think we'll make a collections of wrappers (e.g. exec = (pattern, string) => (string | undefined)[]) and get ESLint to error when not using the wrappers.

Yer, that hammer is a bit too weighty for us. I think we'll make a collections of wrappers (e.g. exec = (pattern, string) => (string | undefined)[]) and get ESLint to error when not using the wrappers.


Update plugin to be compatible with Cypress 10

Hello 👋 I'm writing on behalf of the Cypress DX team. We wanted to notify you that some changes may need to be made to this plugin to ensure that it works in Cypress 10.
For more information, here is our official plugin update guide.

Thanks for the heads up @admah, thankfully everything was compatible, but we've updated our documentation to make it clearer what the differences are for Cy10 vs 9.


BUG: cannot save to obsidian after clicking the "add" button

Version (please complete the following information):

OS: [e.g. Windows] Android 13
Browser [e.g. Chrome, Firefox] kiwi
Web Clipper version: [e.g. 0.5.0] 0.9.3
Obsidian version: [e.g. 1.7.2] 1.7.4

Describe the bug
A clear and concise description of what the bug is. If applicable, add screenshots to help explain your problem.

To reproduce
Steps to reproduce the behavior:

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

Expected behavior
A clear and concise description of what you expected to happen.
Your template file
Go to your template in Web Clipper settings and click on "Export". Attach the JSON file here, or paste the content below.

I'm not familiar with Kiwi browser. Is this an issue that you're able to reproduce in other browsers?

I'm not familiar with Kiwi browser. Is this an issue that you're able to reproduce in other browsers?

I guess chrome-based browsers will all behave this way.
I tested the Kiwi and Lemur browsers, and both exhibit this phenomenon. These two are among the Chrome-based browsers that support extensions quite well.
However, I also tested Firefox for Android and did not encounter this issue.

Hi, I also can't save in Obsidian with Microsoft Edge although it does work in Google Chrome, however I realized that this happens when there is a lot of highlighting, if it is only a few sentences it works.
https://github.com/user-attachments/assets/aa2b7f6b-bb60-4273-a88d-9ba91506244d

Closing this for now as I cannot reproduce. Please try the troubleshooting steps and if you can reproduce open a new issue with steps to reproduce.
https://help.obsidian.md/web-clipper/troubleshoot


maintainers: make email optional

Not giving an email address is fine as long as the maintainer is reachable through other means, such as GitHub or Matrix. On the other hand, an<EMAIL_ADDRESS>email is useless.
This does not break https://search.nixos.org because we already treat email as optional.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/contribute-without-a-github-account/25007/1

On the other hand, an<EMAIL_ADDRESS>email is useless.

It was useful if I wanted to set an obvious "I'm not contactable by email" email address.
Any suggestions on what I should use now so I can restore my repology list and feed?
https://repology.org/projects/?maintainer=59103226%2Bzowoq%40users.noreply.github.com&inrepo=nix_unstable
https://repology.org/maintainer/59103226%2Bzowoq%40users.noreply.github.com/feed-for-repo/nix_unstable

Oops, I didn't think of that, sorry. I've opened a PR at repology to also index GitHub accounts. In the meantime, feel free to revert the noreply check and re-add your email.

It was useful if I wanted to set an obvious "I'm not contactable by email" email address.

I'd say "no email address at all" is even more obvious.

I've opened a PR at repology to also index GitHub accounts.

Thanks.

In the meantime, feel free to revert the noreply check and re-add your email.

I can live without it for a bit, I'll give the repology maintainers some time to review at the PR and go from there.

It was useful if I wanted to set an obvious "I'm not contactable by email" email address.

I'd say "no email address at all" is even more obvious.

I don't understand? Email address was a required field prior to this PR?

I don't understand? Email address was a required field prior to this PR?

Yes, you're right: it was useful given that requirement, but isn't any more.

I can live without it for a bit, I'll give the repology maintainers some time to review at the PR and go from there.

Yeah, lets wait a few days and not hastily revert things. They need to get to nixos-unstable first anyway to be useful.

Here you go


Flet app startup issue in Windows Build

Inconsistent performance in Windows build has been observed. There are 3 scenarios after running the executable file.

UI Loads instantly
UI loads after a waiting for a few seconds
UI does not load even after 10 seconds. (seems like app has been crashed)

There is no way to sense the reason behind this behavior. This happens for as simple code as following:
import datetime
import flet as ft

def notify_user(e):
   pass

async def main(page: ft.Page):

    tool_column = ft.Column([ft.Text("HELLO")])

    page.add(
        tool_column
        )

ft.app(main)

The app is build with the following command.
flet build windows --project sample--module-name app.py --output build --verbose

OS : Windows 11
Python: 3.12.4
Flet: 0.23.2
Flutter: 3.22.3
The build is also tested in other desktops. The behavior was same.

the same issue! UI loading very slower

It also happening with me. UI not refresh automatically.

Will you guys mind sharing a screen record?

Sounds like the issue i faced in

https://github.com/flet-dev/flet/issues/3738

Will you guys mind sharing a screen record?

I shared a screen record

I observe the same situation.
https://github.com/user-attachments/assets/2714be92-4d20-4f74-b6fa-d7005266d146

This problem still remains in the latest version (0.24.0).

It is also happening in android
Uploading XRecorder_Edited_10102024_074201.mp4…

Same to me @ndonkoHenri
I have same issue. Sometimes app starting properly, but almost all time its just white/black screen.


Add llama.cpp and HuggingFace Fallbacks

Description
This PR adds support for llama.cpp, as well as fallback support for local models.
If either the LLM or embedding  model fails to initialize (due to keys), we warn the user and fallback to local models.
This should be a better UX for people, especially when they switch the LLM and don't expect to have to switch the embedding model.
Type of Change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

How Has This Been Tested?

[x] Added new notebook (that tests end-to-end)
[x] I stared at the code and made sure it makes sense

Memory Reqs:

default local LLM = 11.5GB (unclear how this is distributed across RAM vs. VRAM on a Mac though, since it's unified memory)
default embed model = 0.5GB


Bug Report: Does not run

I already installed everything, and still I can't run the engine

fixed, just haxelib git linc_luajit https://github.com/nebulazorua/linc_luajit again


Propagate check flags in patch mode

An issue that's likely fixed by this change was just reported against NullAway: uber/NullAway#1080. CC @cushon; might be worthy of a new release.

Would it be better for Error Prone to detect the case where a disabled check is passed to -XepPatchChecks and throw an understandable exception for that case?  It seems that with #4028 such checks are just ignored, but that could lead to some unexpected behaviors.  Not sure this idea makes sense or helps with finding a simpler overall fix.


Trying to access a damaged Android device

The touchscreen on my android phone recently got destroyed, rendering it completely unusable, and I am trying to see if this software can help me access it and operate its interface on my laptop through Linux Mint.
The only problem is, since the screen is destroyed, I cannot enter in my password, and I doubt that I enabled it to allow debugging before it got damaged.
What I have tried so far:
I have tried plugging my phone into my laptop's USB port, where my laptop noticed it and pulled up a folder for it, but the folder's empty since the phone is locked.
I ran scrcpy in a terminal, and it gave me back this error:
INFO: scrcpy 1.12 <https://github.com/Genymobile/scrcpy> adb: error: failed to get feature set: no devices/emulators found ERROR: "adb push" returned with value 1
I'm pretty sure this just means I'm screwed, but is it possible to access the contents of my phone any way possible?

The easy way: just connect a mouse through a OTG cable and you'll be able to perform any action on your phone, from unlocking it till to setting usb debugging as allowed

Like Lucaacer suggested, a mouse with an OTG cable should work.
Technically, it is possible to do the same without OTG using HID AOA (see https://github.com/Genymobile/scrcpy/issues/279#issuecomment-453819354).


changed dockerfile to use integrade flask dev server

close #11

@losardor Now flask app restart automatically in flask server if code is changed


Fix translation error in issue #1832

Problem
Closes #1832
The issue #1832 identifies a mistranslation in the Arabic version of the 'Import' button, which could lead to confusion for users interacting with the import functionality in different locales.
Solution
I modified the .po file to correct the translation for the 'Import' into Arabic. After updating the translation, I executed the django-admin compilemessages command to compile the .po file into a .mo file, ensuring that the changes would be effectively applied and visible in the application.

Thank you! :rocket:

coverage: 100.0%. remained the same
when pulling 9f0ea64957a151b8aeab178594b6e137eaff9869 on thisisumurzakov:fix/issue-1832-translation
into 029396ddeb2c02e651f3f2b6cc666fe0eb8a647a on django-import-export:main.


fix(template): fix API package template SHELL-1602 #time 15m

:tada: This PR is included in version 2.2.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


clarify: add that binaryData is base64-encoded

This PR clarifies how binaryData in what format the binaryData field in configmaps should be filled.
This information can come handy if one would want to manually add binaryData to a configmap.
I copied the wording over from the secrets page, not sure if that is the best wording:

The values for all keys in the data field have to be base64-encoded strings.

/check-cla

Based on this comment
/lgtm
/approve


Loader module missing

On March 5th you had a commit to add the module "Loader" and you have a line "require foreigner/loader" on line 29 of foreigner.rb but there is no such file. Did you forget to add it to the repository?

@jcoleman @matthuhiggins I have the same issue.

Wow, thanks. Fixed with 05f4ba3 and v1.1.5


Add webpack 5 support

As webpack 5 has multiple deprecations, it seems this plugin is facing some of them as well. It seems the plugin still works but the APIs it depends on will be gone in the future.
I'm using the plugin through optimize-css-assets-webpack-plugin and when you use last-call-webpack-plugin, it emits the following deprecation warning:
DeprecationWarning: optimizeChunkAssets is deprecated (use Compilation.hook.processAssets instead and use one of Compilation.PROCESS_ASSETS_STAGE_* as stage option)

I believe you may need to add a check against webpack 4/5 (see https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/src/index.js for reference) and then adapt to the new API.

Tried to fix this issue:
https://github.com/NMFR/last-call-webpack-plugin/pull/9

@bebraw There is nothing holding you back using optimize-css-assets-webpack-plugin, but you could swap it for css-minimizer-webpack-plugin.
The description says

Just like optimize-css-assets-webpack-plugin but more accurate with source maps and assets using query string, allows to cache and works in parallel mode.

And it doesn't use the deprecated hook call.

@jarroput Yup, that plugin is my official recommendation.
I would say fixing this issue is worth it given this particular plugin is getting five million downloads per week at the moment while the other one is hovering around 230k.
The fix in #9 looks adequate.

I second this. #9 looks mergable to me as well.

there is
(node:35546) [DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS] DeprecationWarning: optimizeChunkAssets is deprecated (use Compilation.hooks.processAssets instead and use one of Compilation.PROCESS_ASSETS_STAGE_* as stage option)

because of last-call-webpack-plugin
https://github.com/NMFR/last-call-webpack-plugin/blob/master/src/index.js#L176
any updates?


Name is  wrong[DOC]

Is your suggestion to fix an issue with documentation or to improve it?
A clear and concise description of the request helps. Ex. Line starting with "install ..." needs to be corrected to [...]
provide link to the documentation page if any including reference to the line/para
A clear and concise description of what you want to happen.
Additional context
Add any other context or screenshots about the feature request here.

I've already vaccinated. But I didn't registered my mobile number. I did an appointment  with my sister reference. Also I had registered  my aadhar number as well. When I login again in cowin it shows not vaccinated unfortunately I've registered wrong name . It suppose to be singmila but it shows singmila. Would you please help me out regarding this issue.


Switch to lib

This moves our main and renderer to the lib folder. 🎉
Closes Issue #10
It also includes the base for the timer- which I will adjust to increment up by minutes per our class discussion .
How do I include gifs?  @apsitos @gprocell927

Fantastic! We have a working timer! ⌛


SlimJar suport

Is your feature request related to a problem? Please describe.
Add SlimJar support to make eco compatible with Guilds and other plugin using that task,
just sending it here so it does not get lost

This would be amazing tbh.


Add explanations for some cryptographic concept

Description
Explanations about Ed25519, X25519, Curve25519, Edwards25519

This PR does... by accomplishing... and it can be reviewed by... you can also test the changes by running...
Screenshots (optional)
PR Checklist

[X] I've read the contributing guidelines.
[X] I've read "What is a Good PR?"
[X] I've included a good title and brief description along with how to review them.
[x] I've linked any associated an issue.
[X] I've requested a review  from pyrsia/collaborators.

May you please remove the <br> and   🙏

I remove these for better readability.


Add Qbic driver

Description of the change
Adds a driver for Qbic

nice, currently just doing auth so needs a bit of work
Docs here:
https://drive.google.com/file/d/1ytAML83qloy9o0WN6C1GWjJ1P-Hcq-WY/view?usp=sharing

closed by #338


Tf2.x

Add support for TensorFlow 2.x:

Update the TravisCI script: install TensorFlow 2.3.1 (update also ubuntu used)
Remove support for frozen models (removed from TensorFlow 2.0 officially, all the utilities are still present, but (maybe) they are gone to be removed soon, therefore drop this support.
Export a Keras model to SavedModel and update tests accordingly
Use the tf.compat.v1 module to use the estimator (in order to keep the support)
Update the python scripts for tests (TODO: export a generic computational graph using tf.function and import it in Go)

Coverage increased (+61.3%) to 94.704% when pulling c8a376a53176b464eb6563ab414075a0f112e274 on tf2.x into 0da94531f85234beb2c1b86d48f65e67fab35207 on master.


Fix gofmt hook

This fixes the gofmt hook. The main issue is that this is using a relative path without the prefix ./, which throws off go because it will look for the package in GOPATH directly, as opposed to treating it like a file package in the current directory.

Merging and releasing! Thanks for review!


Add optional timeout for handle_handoff_data callback and improve logging

New appenv is app_helper:get_env(riak_core, handoff_receive_vnode_timeout, ?VNODE_TIMEOUT), defaulting to the original 60s timeout.  Timeouts are read at the start of each individual handoff.
If the timeout is hit, responds with a cleaner error explaining it was the vnode timeout, how long the timeout is configured for, the size of the handoff data
(to look for smoking large object guns) and the first 128 bytes so a brave soul has a chance of digging out the key.
Do not want to decipher it as do not want to break layering abstraction with riak_kv.
Example when timeout overriden to 120s:
17:58:06.777 [error] Handoff receiver for partition<PHONE_NUMBER>3295358096932575511191922182123945984 exited abnormally after processing 0 objects from {"<IP_ADDRESS>",56562}: {error,{vnode_timeout,120000,154,<<131,104,2,100,0,10,101,110,99,111,100,101,95,114,97,119,104,3,109,0,0,0,7,115,121,115,116,101,115,116,109,0,0,0,4,0,0,0,123,109,0,0,0,110,53,1,0,0,0,34,131,108,0,0,0,1,104,2,109,0,0,0,8,197,82,177,11,182,77,60,181,104,2,97,1,110,5,0,174,65,207,205,14,106,0,0,0,1,0,0,0,5,1,0,0,0,123,0,0,0,53,0,0,5,135,0,3,149,238,0,1,38,108,22,52,70,102,78,84,120,112,54,107,68,81,102,110,113>>}}

Apropos ZD ticket # 9122

Updated with a minor reformat on Sean's suggestion, much cleaner.
Manual testing performed detailed in the commit.

@borshop merge


Scala 3 support

All tests pass on Scala 3, on all platforms (JVM/JS/Native), and on all old versions of Scala.
Pulls in a bunch of work by @lolgab (https://github.com/com-lihaoyi/fastparse/pull/252) @rmgk (https://github.com/com-lihaoyi/fastparse/pull/262) and @ajrnz (https://github.com/com-lihaoyi/fastparse/pull/266)
Notable Changes:

Moved MIMA checking only to the core fastparse modules; I don't think we can promise the same stability guarantees for the example parsers
Tweaked the source file config in each module to allow per-platform-per-version sources, and extended that ability to test sources.
All the .map(Foo) calls have to become .map(Foo.apply), .map(Foo.tupled) calls have to become (Foo.apply _).tupled
Duplicated package.scala for Scala 2 and 3, but splitting out the shared non-macro logic into SharedPackageDefs.scala
All macros had to be re-implemented in fastparse/src-3/
All implicits had to be given explicit return types
Fixed a bug in aggregateMsgInRep where we were not properly propagating failure strings
then has to be back-ticked
Replaced all scala.Symbols in PythonParse with Strings
Replaced the _ method in ScalaParse with Underscore
Replaced some residual usage of uTests' 'foo - syntax with test("foo") -

Performance
Performance seems to have taken about a 10% hit in Scala 3. Probably missing out on some optimizations that we do in Scala 2. I'm not super familiar with how scala 3 macros work, clawing back the 10% can come in a follow up PR
Scala 2 Bench
------------------ Running Tests perftests.string.ScalaParse ------------------
ScalaParse Benchmark
Max time - 10000 ms. Iterations - 5.
Iteration 1
Benchmark 0. Result: 984
Benchmark 1. Result: 82
Iteration 2
Benchmark 0. Result: 632
Benchmark 1. Result: 88
Iteration 3
Benchmark 0. Result: 618
Benchmark 1. Result: 96
Iteration 4
Benchmark 0. Result: 625
Benchmark 1. Result: 99
Iteration 5
Benchmark 0. Result: 596
Benchmark 1. Result: 99
984 82
632 88
618 96
625 99
596 99

Scala 3 Bench
------------------ Running Tests perftests.string.ScalaParse ------------------
ScalaParse Benchmark
Max time - 10000 ms. Iterations - 5.
Iteration 1
Benchmark 0. Result: 899
Benchmark 1. Result: 62
Iteration 2
Benchmark 0. Result: 535
Benchmark 1. Result: 86
Iteration 3
Benchmark 0. Result: 545
Benchmark 1. Result: 85
Iteration 4
Benchmark 0. Result: 547
Benchmark 1. Result: 86
Iteration 5
Benchmark 0. Result: 538
Benchmark 1. Result: 85
899 62
535 86
545 85
547 86
538 85

@lolgab looks like it's been exactly a year to the day you started this: https://github.com/com-lihaoyi/fastparse/pull/271/commits/624c8131fabd8112180675281b21b89a84d5df01 landed 1st March 2022, and here we are 1st March 2023. Now just need to do final review and cleanups before we merge/release this

Thank you all for managing to get this to the finish line.

Thank you for taking over @lihaoyi :)
There are some small details that can be fixed in the future, so I'm more than happy to release a new fastparse 2.x version with the long awaited Scala 3 support.
Good call on restricting Mima to the fastparse module only.
The little details I'm thinking about are the usage of package object in Scala 3 (which I think is deprecated) and the .rep which become .rep(), if you read the original PR code and description, there were some overloads that didn't work on Scala 3, but the linked issue is now closed, I'm wondering if they can be reintroduced now so in Scala 3 you can also do .rep.
Anyways, I don't think these should block the release, since we waited already for too long.

Looks like bare .rep and .repX work now. Not sure when that happened, but I reverted the extra ()s we added and things still seem to pass

@lolgab shall we tag a new version now that this is merged? We can perform further optimizations and improvements in follow ups

@lolgab shall we tag a new version now that this is merged? We can perform further optimizations and improvements in follow ups

We can.
@lefou Since we bumped geny and other dependencies to a new major, this should also be a new major, right?
In this case I would check if your next PR is backward compatible, to avoid having to release a 4.0.0 right after. To do so locally you can publish the lib locally, change mimaPreviousVersions to the snapshot version, apply your next PR and  then run mimaReportBinaryIssues on the Scala 2 modules.

If it's a new major, we should try to squeeze in more breaking changes if possible. e.g. the whitespace PR I have open is definitey binary incompatible


Powershell script does not work

The provided Powershell flat out does not work and it's very frustrating.
If one loads it adds there subscriptionId and hits run it fails right away at the creation of the first SQL Server instance  because the subnet is missing a setting.
It needs to Delegate subnet to a service "Microsoft.Sql/managedInstances" and it does not.
Later on, it fails during the creation of the failover groups.

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

ID: 01534fad-f7c1-6a01-d1d4-1afc75476a2b
Version Independent ID: c7eb69f6-6936-f595-0638-d6846aa3f074
Content: Tutorial: Add SQL Managed Instance to a failover group - Azure SQL Managed Instance
Content Source: azure-sql/managed-instance/failover-group-add-instance-tutorial.md
Service: sql-managed-instance
Sub-service: high-availability
GitHub Login: @rajeshsetlem
Microsoft Alias: rsetlem

@kurtkluth Could you please specify which one of the scripts does not work.

@Oury-MSFT on the page referenced there is a Full Script that is, provided that flat out does not work as I have already indicated.
Simply scroll down on page to Full script copy and paste into PowerShell ISE edit the $SubscriptionId with your ID and hit run something that 14 people who have contributed to the article have not done.
Just now going back and looking I am certian that "Create a resource group and primary managed instance" or "Create a secondary managed instance" won;t work either for the reason that I provided.

Is anyone going to fix the script?

Hi @kurtkluth , thanks so much for reaching out! We're working through a very long list of backlog Git Issue items and apologize for the delay. We're looking at the script.
Thanks!
Masha from the SQL Docs team

Hi @kurtkluth , thanks again for contacting Microsoft and my apologies it has taken a while to fix this for you. I'm pushing a change that will fix the script and it should be live next week.
I'll go ahead and close this Issue, as well as the other one you submitted, but please feel free to comment should you need anything further.
Thanks again for reaching out and I hope you have a wonderful rest of your day!
Masha from the SQL Docs team
#please-close


Support default email domain

Users have to specify the email for every person. We could save them some keystrokes when they share the email domain (e.g. a popular public domain or coworkers).

Example structure
{
  "coauthors": [
    "rk": {
      "name": "Richard Kotze",
      "email"<EMAIL_ADDRESS>     },
  ],
  "default_email_domain": "gmail.com"
}

Part of this issue we will stop support for .git-author YAML and replace it with a json format.

How about we change the .git-coauthors json format to something like:
{
"coauthors": {
"ad": "Amy Doe<EMAIL_ADDRESS>"bd": "Bob Doe<EMAIL_ADDRESS>"ja":  "Jane Anderson; janderson"
},
"default_email_domain": "gmail.com"
}

Changed focus to be on a default email address since we already support different emails.

To better support default email, the coauthors will have a new prop username. This will be the first part of the email address. If this property is there then it will use the default email domain.
So the below example will output: Richard Kotze<EMAIL_ADDRESS>{
  "coauthors": {
    "rk": {
      "name": "Richard Kotze",
      "username": "richard"
     },
  },
  "default_email_domain": "gmail.com"
}

My thoughts were kind of along the same lines as yours in terms of minimising confusing.
By calling a property email and saying it can also just be the first part might also be confusing. Maybe a better name is the solution?
Wikipedia about email address calls it local-part. Not saying this is the prop to use, but the idea of the prop being explicit about what it does could be good.
What you're thoughts on this?

My thoughts are to defer this until people start asking for it 😄
I now think of it as a minor optimisation that's not worth increasing the tool's complexity.

I agree :+1:


HSL color support

implement HSLColor as alternative to Color for more advanced color manipulation
update Color to support HSLColor

This will receive its unit tests, after PR #41 is done and merged, since it contains require testing adjustments for all future tests.


Added some css changes to fix navigation for search quick access

Possible fix for suggestion #475 , now navbar is fixed for search quick access and quick access to other stuff on nav.

Bad guy here. If we can reduce the height of the bar, that would be great. It's taking too much space if you ask me.

@phanan We have the technology. 😄  What were you thinking? It's at 25px vertical padding right now. I agree it may be a bit large for a fixed header right now, but I also don't want to make it too cramped.

@phanan I just updated it to 20px. You can let me know what you think. It's also now possible to just change this variable to play around with that value.

@chrisvfritz IMHO 10px looks just nice:

But I guess what I really mean is, the new padding should only apply when the menu detaches into the fixed position, maybe with a smooth transition.

Yeah... I was afraid you'd say that, but I agree. I'll try to update tomorrow.


Add support for setting your status as DoNotDisturb or Invisible

The UpdateStatus func needs some updating :D

UserUpdateStatus on develop should do this?
On Dec 9, 2016 12:55 PM, "Danik32"<EMAIL_ADDRESS>wrote:

The UpdateStatus func needs some updating :D
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bwmarrin/discordgo/issues/295, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABdVggEQwQbXrXOcCi5OoQG54_d7gNXQks5rGcAngaJpZM4LJWSl
.

Indeed it does it!


conductor should obey INSECURE_SSL in wskprops

conductor parses out wskprops, but ignores the INSECURE_SSL setting that might be asserted in that file:
https://github.com/apache/incubator-openwhisk-composer/blob/master/conductor.js#L52-L55
i notice that in the tests, the insecure ssl part is asserted via an env var:
https://github.com/apache/incubator-openwhisk-composer/blob/master/test/conductor.js#L26
i suggest that we should behave as does the go cli, in its INSECURE_SSL behavior.

do you have a pointer to the matching go cli code?

@tardieu -- resolved by #21?

The deploy command now obeys the __OW_IGNORE_CERTS environment variable in addition to the -i flag as defined by the OpenWhisk client for javascript.
The conductor action code obeys the $composer.openwhisk.insecure_ssl invocation parameter.
By default neither deploying, nor running compositions ignores ssl certificate validation failures.


Issues list Test transferring issue for usnistgov/OSCAL#1936 (updated perms 6)

This will fail because oscalbuilder was downgraded from an outside collaborator from this repo only, before they were a member of the ImportantFederalAgencyTest org. Now they were removed from the org membership list, the action should fail.

As expected it failed:


DCOS Enterprise Mesos Support

Added scheduler for supporting DCOS Enterprise Edition of Mesos in strict mode.  Adds support for a service account to be used.
Fixed the client code to use the proper response struct from /token endpoint.
Added debug for tracing what is happening when things are not working correctly.
Also beware.  I changed the library imports for gatekeeper so that I could build from local source not build from specific repo source.

I changed the library imports for gatekeeper so that I could build from local source not build from specific repo source.

Are you using go 1.11 modules? This change is really unorthodox (projects such as gohugoio/hugo and hashicorp/vault don't do this) and I think it breaks the toolchain on <go1.10 which depends on finding packages via $GOPATH. I think the addition to support DCOS EE is a great addition, but I can't merge this with the import path potentially being broken.

I will fix the paths that is fine.  I did it because the docker build kept pulling the code from github instead of my local changes.  It made very hard to debug.  I will work on that today and see if I can get it to work.  I have seen others do it like you said but for some reason it was not working with your project.

Import Paths are fixed and checked in. Sorry about that.

Are you using the dockerfile in this repo? There may be something wrong with it then, it shouldn't be trying to pull the code from github. I'll look into it.


Fix Image primitive in Sketch 47

This is a fix for issue #173, it will remain backwards compatible with Sketch 46.
@jongold how do we handle API changes from the Sketch side? Will we remove the check once 47 is released or will we remain backwards compatible.

Thanks @kristof!


Compiler Abort: Unable to find symbol in LFC

(import macros)
(def f1 (fn intern void (void)))
(def f2 (fn intern void (void) (f1)))
(using-namespace std.macros
  (def m (macro intern (void)
    (nullptr DNode)))
  (def m2 (macro intern (void)
    (m)
    (nullptr DNode))))

With the above code, the compiler aborts with:
Unable to find symbol (_Z2f1) in LFC.

But if I move the defs around a bit, it compiles fine:
(import macros)
(def f1 (fn intern void (void)))
(using-namespace std.macros
  (def m (macro intern (void)
    (nullptr DNode)))
  (def m2 (macro intern (void)
    (m)
    (nullptr DNode))))
(def f2 (fn intern void (void) (f1)))

Thanks for this.  There is a problem with how undefined symbol resolution is handled when a macro is called.  A stopgap has been added for this case, so compilation of the first example will now succeed, but it still needs more work before this issue can be closed.


Occurences of /v/ that looks like it should maybe be /ɤ/

Hi,
In the language DaliBai, Erich noticed forms such as:

Form
Dataset
ID

tɕ i ²¹ + tɕ ɑ ³⁵ + ts v ²¹
suntb
DaliBai-166_earthworm-1

ɑ ³¹ + ŋ v ⁵³
suntb
DaliBai-941_tenthousand-1

ɲ v ³³ + ȵ i ²¹
suntb
DaliBai-291_woman-1

p i ³¹ + f v ⁴⁴ + ts i ⁴⁴
suntb
DaliBai-240_nose-1

Where it happens that the dataset allenbai shows cognates with /ɤ/ rather than /v/:

Form
Dataset
ID

p i ²¹ + tɕ a ³⁵ + ts ɤ ²¹
allenbai
Qiliqiao-81_earthworm-1

a ³¹ + ŋ ɤ ³²
allenbai
Qiliqiao-462_tenthousand-1

ɲ ɤ ³³ + ɲ i ²¹
allenbai
Zhoucheng-156_woman-1

p i ²¹ + f ɤ ⁴⁴ + ts ɿ ³³
allenbai
Zhoucheng-128_nose-1

We suspect that /v/ in these forms in suntb might actually be /ɤ/.

No, these are fricative vowels, or vowels with frication, such as a v
that is vocalic. They occur in SEA languages, like Chinese, and Bai, and
they often write them without the syllabicity marker, in CLTS we have a
specific symbol they use in SEA languages.

I understand. Is there a reason to leave them as /v/, though, rather than standardising them to a rounded close with-frication central vowel /ʯ/ or rounded close with-frication back vowel /ʮ/? Leaving them as /v/ complicates automated comparison and can lead to users mis-classifying the segments unless they do data checks like we did ... which then may just lead to more github issues getting opened up, that you have to deal with.

Of course. I did not make the original profile for this dataset. But you
are right, it should be standardized, and I'll look into this along with
thee other issues which I noted down, which you brought up!

Thanks !


meas_date documentation inconsistency

In mne.Info, meas_date is a list of two ints.
https://github.com/mne-tools/mne-python/blob/ff8ebca4a9d2497d4f8613c11b42300ccd3c9ba4/mne/io/meas_info.py#L149
however, based on _handle_meas_date, raw.info['meas_date'] can have other formats.
https://github.com/mne-tools/mne-python/blob/ff8ebca4a9d2497d4f8613c11b42300ccd3c9ba4/mne/annotations.py#L272-L281
(Also, I find _handle_meas_date naming confusing, plus I don't understand why is a free function. IMHO it should be raw object method. i.e: raw.get_meas_date_in_absolute_seconds but I don't have enough arguments to do a proper assessment)

however, based on _handle_meas_date, raw.info['meas_date'] can have other formats.

I think after I/O round trip it is always 2 ints. We probably need to improve our raw readers to make it more consistent. We could add a test to _test_raw_reader to ensure each class did it correctly. Want to take a stab at it?

IMHO it should be raw object method

I guess you could make it an Info method (better than Raw because meas_date exists in Info, which can be in other objects) if you want. However I don't see too much to gain in this case, and it would complicate the git blame of the function/method, so I'm -0 on this.

yes we need more consistency in the raw data readers.
regarding the floating functions I prefer these when private as users don't
get exposed
to them with using tab completion. End users should not see these functions.

@agramfort I'm not sure I fully follow your thought here.

_handle_meas_date cannot be discovered with tab so easily. Whereas if I have a method in Annotations I just use tab in an instance of annotations and I start seeing a bunch of private functions I should not see. Clear?

I think this is fixed


fixed simclr example

SimCLR example was broken due to change of schedule, it has been fixed now.

@kurisusnowdeng @ver217 can you take a look at this fix?


JerseyHandler should be able to be used with JerseyServer/JerseyVerticle

For example, I want to create a verticle to host static content and jersey REST endpoint at the same time. For that, I would wire JerseyHandler to vert.x web handler directly instead.

I think there are two ways to achieve this:

Let JerseyServer create the vert.x HttpServer and provide a setupHandler(Handler<HttpServer> handler).  You can then wrap the Jersey handler and provide your own routes.

Create the HttpServer and routes in vert.x web as you normally would and provide the JerseyHandler for whatever route you want.  To initialize the JerseyHandler you would need to follow similar steps used by the JerseyServer here.

Do either of those options work for you?

Yeah (2) 's  what I'm doing but the current initialization seems to be quite awkward with the injection of DefaultVertxContainer in order to create JerseyHandler and then later inject it via init method.

See comment in #39


feat: add a button on open source page linking to the signup form

Description
Add a more obvious button to the open source page
Changes Made
Added a button component on the opence source page
Related Issues
https://github.com/compsci-adl/website/issues/163
Additional Notes

Still doesn't look quite right, let me make a better design for it.

I was thinking of something more like this. @jsun969 @rayokamoto Thoughts?

In regards to that design mock up, the "Who is the open source team" part should be much larger as that's important in establishing who the team is, and the team's goals.


Can FileStore.localTempDir cleanup be controlled by the --clean config flag?

Currently, the directory returned by FileStore.getLocalTempDir is cleaned up at the end of each job. This is inconsistent with the behavior of the --clean option and can make debugging more difficult. Is this intentional? Ideally, the --clean flag would control the behavior of both.

We have --cleanWorkDir for that. I think we separated it because the association is mostly incidental when using singleMachine with file job store because then (and only then) do the job store and the work dir reside on the local file system. On a cluster, you might want to keep the AWS job store, but clean up the worker's work dirs. I'm open to rethinking that, though.

Oh, man! I can't believe that I mixed --clean and --cleanWorkDir up. That's my error. Let me close this.


nixos/tests/munin: port to python

Motivation for this change
Port timezone test to python for #72828 to march towards completion for test ports.
Things done
I noticed this test didn't even work to begin with, and it seems to be that the munin-node module doesn't even load a single usable plugin (which makes the munin-cron portion of this test fail). After a bit of trying to get a plugin to work, I finally decided a minimal working test ported to python was better than a broken non-ported test.

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) nixos/tests/munin.nix
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @domenkozar

cc @ToxicFrog https://github.com/NixOS/nixpkgs/pull/51980

I think we shouldn't remove assertions to fix the test. Port the whole test and let it fail.

I think we shouldn't keep broken tests around in first place, but either fix or drop them ;-)

munin was broken by a perl change: https://github.com/NixOS/nixpkgs/issues/70930. A new perl has been released (5.30.1), so updating perl should unbreak munin.

This should be fixed now with the original tests ported now that munin has been fixed. Thanks @bjornfor

Indeed! It seems the systemd timer unit is firing a bit slowly, I did override it in the test (and dropped some hydra workaround which shouldn't apply anymore).
@x123 PTAL.

@flokli LGTM :+1:


⚠ ClamAV has degraded performance

In 80c2ece, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 570 ms

Resolved: ClamAV performance has improved in 69af3f6.


Those who are having issues installing EchoMimic

This is the best talking avatar that I have ever used, but it takes 7 minutes for a 5-second video in 3080.  I gave up trying to install this, but now it is working. This is way better than Hedra and LivePortrait.
I even asked for help here and i still got so many errors with no solution. Thank you so much for this tutorial. below
https://www.youtube.com/watch?v=WtHdvSSQlWo

Thanks for your contribution!

@yuange250
I agree this is the best talking head so far. Thanks to all the developers for making it available.
The only point where it need improvement is duration of processing. Once that is done it will be awesome.

@yuange250
Kindly update the link of video as earlier video is removed and new video posted to include the changes .
New video link
https://www.youtube.com/watch?v=WtHdvSSQlWo

Thanks for your advice, efficiency optimization is the most emergent thing we are working on.

Thanks for your advice, efficiency optimization is the most emergent thing we are working on.

THe link is broken for the Video Installation tutorial


bug: the button is visible when the drawer is open , z-index doesn't work

What version of daisyUI are you using?
No response
Which browsers are you seeing the problem on?
All browsers
Reproduction URL
             {/* Page content here */}                        Open drawer                               {' '}                             {/* Sidebar content here */}
Describe your issue

          {/* Page content here */}

            Open drawer

          {' '}
          <Drawer id={modal} categorylable={category.label} menu={menu} />

        {/* Sidebar content here */}

Please provide a minimum reproduction link


Build a readme

describe the readme .

goals , how to install it, examples , how to contribute .

closes #1. see #3


Feat/backend/resend otp endpoint

Description
This pr aims to introduce the endpoint that would allow an otp to be resent to a user upon request
Fixes # (issue)
#164
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] Unit tests for rate limiting otp generation using middleware.
[x] Testing endpoint using postman to ensure it performs as expected.

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@codecov(bot) calm down😠😂


Using preexisting chromium

node version 8.10
testcafe version 0.20
##Here is my issue
I have been using this package to run testcafe on a Jenkins server. It was working nicely but the Jenkins has been restructured. Now agents are generate via docker and these agents can't download chromium but do come with puppeteer and chromium pre-installed.
What I'd like to do is use this package but provide it an existing puppeteer or chromium as opposed to it downloading a new puppeteer every time we wish ti use it.

Implemented in Version 1.4.0


python3Packages.vulture: 2.1 -> 2.3

Motivation for this change
Update to latest upstream release 2.3
Change log: https://github.com/jendrikseipp/vulture/releases/tag/v2.3
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 109721 run on x86_64-linux 1

3 packages built:

python37Packages.vulture
python38Packages.vulture
python39Packages.vulture

Result of nixpkgs-review pr 109721 run on x86_64-linux 1

3 packages built:

python37Packages.vulture
python38Packages.vulture
python39Packages.vulture

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109721 run on x86_64-darwin 1

3 packages built:

python37Packages.vulture
python38Packages.vulture
python39Packages.vulture

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109721 run on x86_64-darwin 1

3 packages built:

python37Packages.vulture
python38Packages.vulture
python39Packages.vulture

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109721 run on x86_64-linux 1

3 packages built:

python37Packages.vulture
python38Packages.vulture
python39Packages.vulture

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 109721 run on x86_64-linux 1

3 packages built:

python37Packages.vulture
python38Packages.vulture
python39Packages.vulture


4.5 second sleep upon initialization

Describe the bug
There is a 4.5-second sleep in the library initialization:
 Future<Map> initSdk(bool registerConversionDataCallback,bool registerOnAppOpenAttributionCallback) async {
    sleep(const Duration(milliseconds: 4500));
    ....
}

To Reproduce

Use SDK

Expected behavior
There is no delay in SDK initialization
Info
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, v1.15.19, on Microsoft Windows [Version 10.0.18362.719], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Chrome - develop for the web
[√] Android Studio (version 3.6)
[√] VS Code (version 1.39.1)
[√] Connected device (2 available)

• No issues found!

appsflyer_sdk: 1.2.2

Come on, guys, this is so bad!

what is the sleep for? If we know what it's for, we can fix it ourselves and submit a pull request

What the actual fuck?

If delay is actually needed, you should use Future.delayed instead of blocking the thread

Are you serious, guys? It's been a WEEK since this totally critical issue and still no response? What's the use of your multiple emails to me asking "did we fix it" if you don't actually fix any issues with your library?

I've released now a new version without the sleep and now will work on a workaround to fix the initialisation issue.
thanks for the feedback

Changed this to Future.delayed. working fine on iOS, still there are some issues on Android.
released new version 1.2.5


Identification Failures near Glass Windows and Glasses

Issue Description
We are having some issues regarding reflections in glass windows and glasses, do you have some suggestions in how we could approach this problem and improve identification?
Even though the person was registered with the incorporation, without reflections and without glasses, the lib still incorrectly identified the person;
Steps to Reproduce
When trying to identify someone close to a glass window or that is using glasses, the identification fails, mismatching the person with another person;
Expected Behavior
It is expected that glasses interfere with the process, but it was unexpected that glass windows wouldn't.
Environment

Human library version? 3.2.1
Built-in demo or custom code? custom code
Type of module used (e.g. js, esm, esm-nobundle)? esm
TensorFlow/JS version (if not using bundled module)?
Browser or NodeJS and version (e.g. NodeJS 14.15 or Chrome 89)? Chrome 123
OS and Hardware platform (e.g. Windows 10, Ubuntu Linux on x64, Android 10)? Windows 10
Packager (if any) (e.g, webpack, rollup, parcel, esbuild, etc.)?
Framework (if any) (e.g. React, NextJS, etc.)? Angular

Diagnostics

Check out any applicable diagnostic steps

Additional

Human Config:

humanConfig = {
debug: false,
modelBasePath: '../assets/models/',
filter: { enabled: true, equalization: true, flip: false, width: 0 },
face: {
enabled: true,
detector: { rotation: true, maxDetected: 100, minConfidence: 0.6, return: true, mask: false },
iris: { enabled: true },
description: { enabled: true }, // default model for face descriptor extraction is faceres
mesh: { enabled: true },
emotion: { enabled: false },
antispoof: { enabled: true },
liveness: { enabled: true },

},
body: { enabled: false },
hand: { enabled: false },
object: { enabled: false },
gesture: { enabled: true },
segmentation: { enabled: false },
};

For installation or startup issues include your package.json

For usage issues, it is recommended to post your code as gist

For general questions, create a discussion topic

what do you mean by "reflection in glass window"? if you see a full reflection, then its detected as a different person than primary and you should set maximum number of detected people - for example, 1.
regarding glasses, its a known problem - and honestly i didn't put too much time into solving it since entire concept of person identification is a value add here, its not a primary functionality..

moving this to discussions as its not really a product issue as such.


jscon_decode transformer is only decoding integers

is the json_decode transformer working as expected to your knowledge? I have been trying to debug issue with using the json_decode transformer for days now and problem I experience is it can only decode integers in the json string. The rest of the values are coming out as NULL. I have verified i can call the standard json_decode on the file contents so its not that the encoding of the file is wrong.
just to re-iterate - i have tested the etl flow and when i am just using integer values for the mapped columns in my database it runs through without a problem, but when i try to pass string vales they are decoded as NULL.

The tests for the json decode transformer are passing and everything seems ok. Can you provide an example code that reproduces this error?

I think the issue is that when it comes to the actual json_decode call in the etl process, it is  calling json_decode on an individual string (value), i.e. this line in the JsonDecode.php - return json_decode($column, $this->assoc, $this->depth, $this->options);
For me, when i pass the below file into the etl process, when I get to the JsonDecode, it is being called on an individual column value. is this expected behaviour?
e.x. calling json_decode("Cassandra"); returns null. and for my file, (which I assume is in the correct format), the json_decode is called on each of the values from the key:value pairs in there.
candidate1app-1 .txt
if you see something wrong with my file format (this is just an example file i tested with) can you please point it out? or even better, can you send me a sample file you know works and i can compare to see where the issue is?

a sample of my code as requested also:
$json = '[{"a": "fidplasy","b":"The Apache Software Foundation","processIdList":3,"displayName":"testingstring","e":5}]'; file_put_contents('/var/www/auraengine/candidate1app-1.json', $json); $data = $etl->extract('json', '/var/www/auraengine/candidate1app-1.json'); $data->transform('json_decode', $transformer_options)             ->load('insert', config('iqcloud.application_components.tablename'), $options)             ->run();

For me, when i pass the below file into the etl process, when I get to the JsonDecode, it is being called on an individual column value. is this expected behaviour?

Yes, this is the expected behaviour. You dont need to use the json decode transformer, since the json extractor already decodes your file.

ok - so when would I need to use the json decode transformer then? your saying I should be able to skip this step in the etl process?

Yes, you can do something like:
$etl->extract('json', '/tmp/app-1.json')
    ->load('insert', config('iqcloud.application_components.tablename'), $options)
    ->run();

The load step will have access to the a, b, processIdList, displayName  and e columns.
The json decode is useful when only specific columns of your source are json, and not the entire source.


clarify has-measure-trigger

@kameyer226 pointed out language that was wrong in this YEP (see https://github.com/yaq-project/yaqd-gage/issues/13)
I've tried to make the language much more complete and correct here.
I would really appreciate some detail-oriented critique here. I really need to get this correct to prevent further user confusion.

@kameyer226 I would really appreciate if you could review these changes. See if they match with your expectations and observations. I'm happy to edit or add if needed. Thanks!

It is clear from @kameyer226's review that I still have a long way to go before this YEP is accurate. Please hold off on review until I can find the time to rewrite. I apologize for being so slow in this respect!

I'm very sorry that I have still not finished these clarifications. It's absolutely unacceptable that I have failed in this respect. I have no excuse.

I continue to fail without excuse. Please rest assured that this language remains important to me.

@kameyer226 it turns out that the implementation is wrong and always has been. The current behavior of actual daemons is wrong. Gotta fix this first and then I will return to this language.

Content wise, LGTM... may recommend running spell check over it

merging, it's still only a draft


Changing CloudBigtableIO write related classes to be public.

I spoke offline with @derjust.   He needed access to some of the inaccessible internal classes in Cloud Bigtable, and I would venture to say that others will need it as well.  Changing  CloudBigtableSingleTableWriteFn, CloudBigtableMultiTableWriteFn and CloudBigtableWriteTransform to be public rather than package private.

:+1 :)

This is a low risk change.  I'm merging.

LGTM, consider moving them out to individual files.

@kevinsi4508: The Dataflow SDK does the One-Big-File-Per-Integration class structure, which is why I did it as well.  I agree with you that it would be nicer to have multiple files.  This structure will be used in a similar class in the DataflowSDK in the near future, so I figured that we'll keep a similar structure to the DataflowSDK version.


can't compile in android studio

Something is missing in the project :
there is a 'add configuration' message

I have not used Android Studio for a long time. I'll try it myself.
Please:

provide some screen shots and logs of android studio.
Try these 'gradlew' commands directly in an console in the root directory of the project:
./gradlew assembleDebug
./gradlew installDebug

I have tried with the latest version of Android Studio:
Android Studio Flamingo | 2022.2.1 Patch 2
It works as expected.
Please provide some logs and screen shots about your current problem, and try to compile it with the latest version of Android Studio.

here is a log (under WINDOWS/MS-DOS)
PS G:\ftpserver-master> ./gradlew assembleDebug
Starting a Gradle Daemon (subsequent builds will be faster)
FAILURE: Build failed with an exception.

What went wrong:
Could not open settings generic class cache for settings file 'G:\ftpserver-master\settings.gradle' (C:\Users\auror.gradle\caches\7.5\scripts\916uvh0t6tz3gyl3omv1c3lxt).

BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 63

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 3s
It's not the latest Android Studio (Electric EEl 2022), and perhaps I haven't added all the settings for compiling in command line, as I always use Android Studio with the graphical interface.

It looks like that you are using a JDK version too high for the version of gradle we are using. jdk 19?
Please help me confirm it with these settings:
https://stackoverflow.com/a/75114912
Try to set it to openjdk 11 and check if it solved the problem.
And please tell me the jdk version you are using.

Now, it compiles
You should add these explanations (change jdk) in the README file, and perhaps update your github project with this value of jdk
and explain how to compile from command line
Thank you

OK. I'll add some instructions about the jdk verison in the readme. And add the support of newer version of the jdk.

I have just installed your app that use this library. It works fine.
Have you got a link to a github android project for a ftp client ?

No, I do not know of any android ftp clients.
I use the clients on computer usually.

Now we support openjdk11 to openjdk19


Add retry for Vault

Closes #12

Pls, add a changelog entry

Codecov Report

Merging #29 into master will decrease coverage by 0.13%.
The diff coverage is 95.23%.

@@            Coverage Diff             @@
##           master      #29      +/-   ##
==========================================
- Coverage    99.4%   99.27%   -0.14%
==========================================
  Files          17       17
  Lines         673      689      +16
  Branches       99      100       +1
==========================================
+ Hits          669      684      +15
  Misses          3        3
- Partials        1        2       +1

Impacted Files
Coverage Δ

src/konfetti/vault/synchronous.py
100% <100%> (ø)
:arrow_up:

src/konfetti/vault/core.py
100% <100%> (ø)
:arrow_up:

src/konfetti/vault/asynchronous.py
100% <100%> (ø)
:arrow_up:

src/konfetti/vault/base.py
97.29% <88.88%> (-2.71%)
: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 bae10c3...39dcfc2. Read the comment docs.