version 1.7.0 and above broke pytest verbose output

Problem description
During local tests is not infrequent to use Pytest with live log call output to watch logs as they are emitted and to help in debugging activities. The command to have this "verbose" output is the following
pytest -o log_cli=1
Until aws-lambda-powertools 1.6.1 the command worked fine.
Since version 1.7.0 all pytest live log call outputs are missing.
Expected behaviour
All function/test live log call outputs should be visible when issuing pytest -o log_cli=1
Current behaviour
No live log call outputs when issuing pytest -o log_cli=1 and using powertools 1.7.0 or above
How to reproduce
I've provided a simple gist to reproduce the issue.

Clone the following gist: https://gist.github.com/silvestriluca/95352eb38587cb6bc333f8ec790fb22a
Navigate to the repo folder

Working scenario

Set a virtual environment: python3 -m venv v-env-pt161

Activate the v-env-pt161 virtual environment

pip install -r requirements_powertools161.txt to install pytest and powertools v1.6.1

Run pytest -o log_cli=1

You should see the following output:

As you can see, all log lines appear as expected, with proper errorlevel => this powertool version works

Broken scenario

Now set a new virtual environment: python3 -m venv v-env-ptlatest
Activate the v-env-ptlatest virtual environment
pip install -r requirements.txt to install pytest and latest powertools (v1.9.1)
Run pytest -o log_cli=1
You should see the following output. As you can see, the logs are missing => this powertool version doesn't work
Going backwards with powertools versions, you can see that the issue starts with version 1.7.0

Possible cause
According to Powertools changelog, version 1.7.0 introduced the following bugfix:

improv: keeps Lambda root logger handler intact, and add log filter instead to prevent child log records duplication (#198)

My guess is that this somehow steals the log handler from pytest, making -o log_cli=1 options useless.
Suggested fix implementation
Since this bug is relevant only during local unit tests and it was introduced with version 1.7.0, setting an environment variable that restores the pre-v1.7.0 log behaviour and that can be used only during local tests could do the job.
Environment

Tested with both Python 3.9.1 and 3.8.3
Pip package

Hey @silvestriluca, thank you for raising this -- It's definitely an interesting one.
I did some quick analysis before I get back to this on Friday before the 1.10.0 release, and I can't see anything obvious at the moment --- It's almost as if our logging filter is suppressing its output despite Pytest logger being completely independent for Live Log feature.
What we did in 1.7.0 was basically add a filter to all existing loggers (root in particular) to filter out any child logger messages from our Logger, and that was deliberate to not impact any other existing loggers but our child ones.
here are my notes for now before I get back to it.

Pytest Live Log Logger registered: logging.root.manager.loggerDict["Main function"]
1.9.1 version
LogCaptureHandler
============================= test session starts ==============================
platform darwin -- Python 3.7.4, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /private/tmp/bug-262
plugins: mock-2.0.0, asyncio-0.12.0, cov-2.10.1
collected 1 item

test_main.py
logging.root.handlers[0].__dict__
{'_name': None, 'filters': [], 'formatter': <_pytest.logging.Col...102e1eed0>, 'level': 0, 'lock': <unlocked _thread.RL...102ee1b70>, 'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">], 'stream': <_io.StringIO object...103ba9f50>}
special variables:
function variables:
'filters': []
'_name': None
'level': 0
'formatter': <_pytest.logging.ColoredLevelFormatter object at 0x102e1eed0>
'lock': <unlocked _thread.RLock object owner=0 count=0 at 0x102ee1b70>
'stream': <_io.StringIO object at 0x103ba9f50>
'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">]
len(): 7

1.6.1 version
============================= test session starts ==============================
platform darwin -- Python 3.7.4, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /private/tmp/bug-262
plugins: mock-2.0.0, asyncio-0.12.0, cov-2.10.1
collected 1 item

test_main.py
logging.root.handlers[0].__dict__
{'_name': None, 'filters': [], 'formatter': <_pytest.logging.Col...104a31210>, 'level': 0, 'lock': <unlocked _thread.RL...104b00b40>, 'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">], 'stream': <_io.StringIO object...1078444b0>}
special variables:
function variables:
'filters': []
'_name': None
'level': 0
'formatter': <_pytest.logging.ColoredLevelFormatter object at 0x104a31210>
'lock': <unlocked _thread.RLock object owner=0 count=0 at 0x104b00b40>
'stream': <_io.StringIO object at 0x1078444b0>
'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">]
len(): 7

Hey @silvestriluca, thank you for raising this -- It's definitely an interesting one.
I did some quick analysis before I get back to this on Friday before the 1.10.0 release, and I can't see anything obvious at the moment --- It's almost as if our logging filter is suppressing its output despite Pytest logger being completely independent for Live Log feature.
What we did in 1.7.0 was basically add a filter to all existing loggers (root in particular) to filter out any child logger messages from our Logger, and that was deliberate to not impact any other existing loggers but our child ones.
here are my notes for now before I get back to it.

Pytest Live Log Logger registered: logging.root.manager.loggerDict["Main function"]
1.9.1 version
LogCaptureHandler
============================= test session starts ==============================
platform darwin -- Python 3.7.4, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /private/tmp/bug-262
plugins: mock-2.0.0, asyncio-0.12.0, cov-2.10.1
collected 1 item

test_main.py
logging.root.handlers[0].__dict__
{'_name': None, 'filters': [], 'formatter': <_pytest.logging.Col...102e1eed0>, 'level': 0, 'lock': <unlocked _thread.RL...102ee1b70>, 'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">], 'stream': <_io.StringIO object...103ba9f50>}
special variables:
function variables:
'filters': []
'_name': None
'level': 0
'formatter': <_pytest.logging.ColoredLevelFormatter object at 0x102e1eed0>
'lock': <unlocked _thread.RLock object owner=0 count=0 at 0x102ee1b70>
'stream': <_io.StringIO object at 0x103ba9f50>
'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">]
len(): 7

1.6.1 version
============================= test session starts ==============================
platform darwin -- Python 3.7.4, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /private/tmp/bug-262
plugins: mock-2.0.0, asyncio-0.12.0, cov-2.10.1
collected 1 item

test_main.py
logging.root.handlers[0].__dict__
{'_name': None, 'filters': [], 'formatter': <_pytest.logging.Col...104a31210>, 'level': 0, 'lock': <unlocked _thread.RL...104b00b40>, 'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">], 'stream': <_io.StringIO object...1078444b0>}
special variables:
function variables:
'filters': []
'_name': None
'level': 0
'formatter': <_pytest.logging.ColoredLevelFormatter object at 0x104a31210>
'lock': <unlocked _thread.RLock object owner=0 count=0 at 0x104b00b40>
'stream': <_io.StringIO object at 0x1078444b0>
'records': [<LogRecord: UNIT_TES...nit test">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun... handler">, <LogRecord: Main fun...t_test'}">, <LogRecord: Main fun...evel log">]
len(): 7

Forgot to mention, the log records are being registered as expected - use -s option to see them, but for some reason it doesn't without

Forgot to mention, the log records are being registered as expected - use -s option to see them, but for some reason it doesn't without

Hello @heitorlessa .
Thank you for the quick reply and preliminary analysis.
It's actually tricky. Looking forward to your further investigations!

Hello @heitorlessa .
Thank you for the quick reply and preliminary analysis.
It's actually tricky. Looking forward to your further investigations!

Alright @silvestriluca, finally found the why and it's not pretty - Pytest Live Log feature changes the logging root stream with a ColorFormatter formatter to propagate what any Logger logs (hence why you see in the tests).
Why this happens
1. We filter out any duplicated logs coming from our Logger namespace
This allows us to have child loggers sharing changes bi-directionally. For example, if a Parent logger adds a new structured key, it'll reflect in the Child and vice-versa  e.g. folks using multiple loggers across multiple files or in Layers
2. We cannot easily differentiate between Pytest Live Log messages
Log filters are applied right after a Log Record is created[1], and until it reaches the handler space[2] there's not much contextual information that can be injected to differentiate between the two. It's a great feature of Pytest, that's for sure, but it leaves no trace that I can think of to make these calls.
Options as of now

Disable duplicate log filter when not running in Lambda-like environment. Relatively straightforward as we have checks like this for Tracer. When running locally Pytest Live log feature will be able to successfully duplicate both log messages.

Cons: It can impact customers' test for those using multiple Logger instances (parent + child), including non-Lambda environments despite the lack of official support.

Introduce a feature flag to disable log filter. An environment variable to purposefully disable duplicate log filter. This has the benefit of not impacting any current usage, no side effects, and is explicit on its intentions when enabled - need ideas on the env var name :D
Work with Pytest team to ask for alternatives. They might have ideas in this space.
Drop bi-directional support between parent and child Loggers. I've been contemplating this but will need a v2, and given my current bandwidth I can see this becoming a possibility in early Q2 only.

What would you suggest @silvestriluca? I'd vote for an env var

[1]  Log record originally produced compared with Pytest Live Log record that will be suppressed in the next step.
Powertools Log record
{
 'args': (),
 'created':<PHONE_NUMBER>.410131,
 'exc_info': None,
 'exc_text': None,
 'filename': 'main.py',
 'funcName': 'handler',
 'levelname': 'ERROR',
 'levelno': 40,
 'lineno': 11,
 'message': 'Some error level log',
 'module': 'main',
 'msecs':<PHONE_NUMBER>3061523,
 'msg': 'Some error level log',
 'name': 'Main function',
 'pathname': '/private/tmp/bug-262/main.py',
 'process': 97653,
 'processName': 'MainProcess',
 'relativeCreated':<PHONE_NUMBER>672119,
 'stack_info': None,
 'thread':<PHONE_NUMBER>,
 'threadName': 'MainThread'
}

Pytest live log record
{
 'args': (),
 'created':<PHONE_NUMBER>.410131,
 'exc_info': None,
 'exc_text': None,
 'filename': 'main.py',
 'funcName': 'handler',
 'levelname': 'ERROR',
 'levelno': 40,
 'lineno': 11,
 'message': 'Some error level log',
 'module': 'main',
 'msecs':<PHONE_NUMBER>3061523,
 'msg': 'Some error level log',
 'name': 'Main function',
 'pathname': '/private/tmp/bug-262/main.py',
 'process': 97653,
 'processName': 'MainProcess',
 'relativeCreated':<PHONE_NUMBER>672119,
 'stack_info': None,
 'thread':<PHONE_NUMBER>,
 'threadName': 'MainThread'
}

[2]

Alright @silvestriluca, finally found the why and it's not pretty - Pytest Live Log feature changes the logging root stream with a ColorFormatter formatter to propagate what any Logger logs (hence why you see in the tests).
Why this happens
1. We filter out any duplicated logs coming from our Logger namespace
This allows us to have child loggers sharing changes bi-directionally. For example, if a Parent logger adds a new structured key, it'll reflect in the Child and vice-versa  e.g. folks using multiple loggers across multiple files or in Layers
2. We cannot easily differentiate between Pytest Live Log messages
Log filters are applied right after a Log Record is created[1], and until it reaches the handler space[2] there's not much contextual information that can be injected to differentiate between the two. It's a great feature of Pytest, that's for sure, but it leaves no trace that I can think of to make these calls.
Options as of now

Disable duplicate log filter when not running in Lambda-like environment. Relatively straightforward as we have checks like this for Tracer. When running locally Pytest Live log feature will be able to successfully duplicate both log messages.

Cons: It can impact customers' test for those using multiple Logger instances (parent + child), including non-Lambda environments despite the lack of official support.

Introduce a feature flag to disable log filter. An environment variable to purposefully disable duplicate log filter. This has the benefit of not impacting any current usage, no side effects, and is explicit on its intentions when enabled - need ideas on the env var name :D
Work with Pytest team to ask for alternatives. They might have ideas in this space.
Drop bi-directional support between parent and child Loggers. I've been contemplating this but will need a v2, and given my current bandwidth I can see this becoming a possibility in early Q2 only.

What would you suggest @silvestriluca? I'd vote for an env var

[1]  Log record originally produced compared with Pytest Live Log record that will be suppressed in the next step.
Powertools Log record
{
 'args': (),
 'created':<PHONE_NUMBER>.410131,
 'exc_info': None,
 'exc_text': None,
 'filename': 'main.py',
 'funcName': 'handler',
 'levelname': 'ERROR',
 'levelno': 40,
 'lineno': 11,
 'message': 'Some error level log',
 'module': 'main',
 'msecs':<PHONE_NUMBER>3061523,
 'msg': 'Some error level log',
 'name': 'Main function',
 'pathname': '/private/tmp/bug-262/main.py',
 'process': 97653,
 'processName': 'MainProcess',
 'relativeCreated':<PHONE_NUMBER>672119,
 'stack_info': None,
 'thread':<PHONE_NUMBER>,
 'threadName': 'MainThread'
}

Pytest live log record
{
 'args': (),
 'created':<PHONE_NUMBER>.410131,
 'exc_info': None,
 'exc_text': None,
 'filename': 'main.py',
 'funcName': 'handler',
 'levelname': 'ERROR',
 'levelno': 40,
 'lineno': 11,
 'message': 'Some error level log',
 'module': 'main',
 'msecs':<PHONE_NUMBER>3061523,
 'msg': 'Some error level log',
 'name': 'Main function',
 'pathname': '/private/tmp/bug-262/main.py',
 'process': 97653,
 'processName': 'MainProcess',
 'relativeCreated':<PHONE_NUMBER>672119,
 'stack_info': None,
 'thread':<PHONE_NUMBER>,
 'threadName': 'MainThread'
}

[2]

Hello @heitorlessa .
Great analysis, kudos for that!
My two cents:

Quick fix: I agree with you in approaching the issue in the most unobtrusive way, and Introduce a feature flag to disable log filter (env var). I would suggest POWERTOOLS_LOG_FILTER_DISABLED with a default value of 0 (pretty much like POWERTOOLS_TRACE_DISABLED flag)
I would document this flag in Logger documentation under "Testing your code" section, explaining why is needed.
Long term plan: I would also open an issue in Pytest repo, linking this issue, explaining this usecase and asking them to implement some way to track live log messages so they can be intercepted/differentiated. As an alternative, they could provide some ideas, as you pointed out. I guess that this is not the only library that has issues with this drastic approach of overtaking on the root logger.

What do you think?

Hello @heitorlessa .
Great analysis, kudos for that!
My two cents:

Quick fix: I agree with you in approaching the issue in the most unobtrusive way, and Introduce a feature flag to disable log filter (env var). I would suggest POWERTOOLS_LOG_FILTER_DISABLED with a default value of 0 (pretty much like POWERTOOLS_TRACE_DISABLED flag)
I would document this flag in Logger documentation under "Testing your code" section, explaining why is needed.
Long term plan: I would also open an issue in Pytest repo, linking this issue, explaining this usecase and asking them to implement some way to track live log messages so they can be intercepted/differentiated. As an alternative, they could provide some ideas, as you pointed out. I guess that this is not the only library that has issues with this drastic approach of overtaking on the root logger.

What do you think?

Perfect - I'll see if I can ship this with 1.10 early next week, or as a fast follow by next Friday then ;)

Perfect - I'll see if I can ship this with 1.10 early next week, or as a fast follow by next Friday then ;)

Done - Could you review the PR #268 to see if the messaging is right before we ship it tomorrow @silvestriluca?
Thank you!

Done - Could you review the PR #268 to see if the messaging is right before we ship it tomorrow @silvestriluca?
Thank you!

@heitorlessa Docs are ok for me.

@heitorlessa Docs are ok for me.

hey @silvestriluca - This is now available on 1.10 on PyPi and on SAR :)
Closing this now, and thank you for reporting it one more time

hey @silvestriluca - This is now available on 1.10 on PyPi and on SAR :)
Closing this now, and thank you for reporting it one more time


Newsheet is empty SetCellValue?

$ go version
go version go1.8.1 windows/amd64

Code:
package main

import (
	"fmt"
	"os"

	"github.com/Luxurioust/excelize"
)

func main() {
	xlsx := excelize.CreateFile()
	// Create a new sheet.
	xlsx.NewSheet(2, "List")
	// xlsx.DeleteSheet("Sheet1")
	// Set value of a cell.
	xlsx.SetCellValue("List", "A1", 100)
	xlsx.SetCellValue("List", "B1", 30)
	xlsx.SetCellFormula("List", "C1", "=A1+A2")
	// Set active sheet of the workbook.
	xlsx.SetActiveSheet(2)
	// Save xlsx file by the given path.
	err := xlsx.WriteTo("./dummy.xlsx")
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
}

I changing "Create XLSX file Example"
But Cell is Empty...
dummy.xlsx
I Tested MS Office2007

@dohq Function SetCellValue() doesn't support get rows by sheet name currently, it need to name "Sheet" + index. Relate issue #25 and #43

Does that mean we should use 'S'heet+index in this API. // uppercase
But, we should 's'heet+index in GetRows() API? // lowercase

@dlintw Using both "Sheet" + index and "sheet" + index are working.

@Luxurioust Thankyou for replay
I will try

I test this problem too.
I find the sheet name MUST in "Sheetn" and the "n" MUST equals xlsx.NewSheet(n, "Sheetn").
2017-05-05
LiaoBin
发件人：dohq<EMAIL_ADDRESS>发送时间：2017-05-02 15:12
主题：[Luxurioust/excelize] Newsheet Disable SetCellValue? (#47)
<EMAIL_ADDRESS><EMAIL_ADDRESS>$ go version
go version go1.8.1 windows/amd64
Code:
package main
import (
"fmt"
"os"
"github.com/Luxurioust/excelize"

)
func main() {
xlsx := excelize.CreateFile()
// Create a new sheet.
xlsx.NewSheet(2, "List")
// xlsx.DeleteSheet("Sheet1")
// Set value of a cell.
xlsx.SetCellValue("List", "A1", 100)
xlsx.SetCellValue("List", "B1", 30)
xlsx.SetCellFormula("List", "C1", "=A1+A2")
// Set active sheet of the workbook.
xlsx.SetActiveSheet(2)
// Save xlsx file by the given path.
err := xlsx.WriteTo("./dummy.xlsx")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
I changing "Create XLSX file Example"
But Cell is Empty...
dummy.xlsx
I Tested MS Office2007
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@Luxurioust
I tested createsheet after GetSeheetIndex
I have tested the program and confirmed that it works as designed.
Thank you!


loss is negative

Why is the loss negative?
What do the plus or minus of the loss represent?
Thanks very much!

@Peiliang

It's normal. Because each loss is weighted by their uncertainty: loss = sum(loss_i * torch.exp(-uncert[i]) + uncert[i]). As the loss_i becomes smaller, the uncertainty will become negative.

The larger the absolute value of the loss,the network is in convergence?

The optimizing variable is the loss instead of abs(loss).


downgrade to Node 0.8

Per https://github.com/afeld/jsonp/issues/18#issuecomment-54216994 – closes #18.

Ever forward.


Make fetch.message.max.bytes configurable

Recently, we migrate our transport from scribe to kafka, but our zipkin seems not accept any message. Our kafka server have a message.max.bytes that are greater than the default 1024*1024 byte, and it is not easily to change it. It seems KafkaSpanReceiver.receiverProps is the ConsumerConfig, but we can not pass fetch.message.max.bytes via environment variable, which is inconvenient.

Hi. so the docs actually indicate a megabyte is the max size per message.
Regardless, let me see if there's a way for us to constrain this portably.
If would be nice if we could have one collector parameter for this, as
large messages can become problematic.
http://kafka.apache.org/documentation.html

which reporter are you using to send the messages? I noticed that htrace compresses the messages like so..
https://github.com/apache/incubator-htrace/blob/master/htrace-zipkin/src/main/java/org/apache/htrace/impl/KafkaTransport.java#L105

so kafka is tuned for smaller message sizes, and 1MB with compression can hold a fair amount of spans. Can you try compression first? I've opened an issue in zipkin-java to add metrics on message size https://github.com/openzipkin/zipkin-java/issues/165

Our reporter sends message less than 1MB (I have stats to ensure that). But the kafka server's configuration is 200MB (other message needs this)，and the config seems to be global and affects our topic.

OK if that's the case, then this needs to be a kafka-specific parameter, not conflated with span message size

ok so maybe KAFKA_FETCH_MESSAGE_MAX_BYTES for lack of a better idea..

Yeah.

ok np

https://github.com/openzipkin/zipkin/pull/1109

settled on KAFKA_MAX_MESSAGE_SIZE as it is less awkward and more like the other variables

going out as 1.39.9


Automated cherry pick of #784

Cherry pick of #784 on release-0.6.
#784: Disable sctp

/approve

/lgtm


Let the OS position window initially

If not set, the initial window position is set to 0,0. There default should be to let the OS position the window initially. Perhaps setting to -1,-1?

Done as far as the Operating Systems allow control over it.


Add support for generic, server side template tags

My current html file has EJS tags like this:

<%= bigVariable1 %>

<%= bigVariable2 %>

<%= bigVariable3 %>

Beautifier seems to expect a closing tag, when it can't find it, it reflows the text as follows:

<%= bigVariable1 %>

<%= bigVariable2 %>

<%= bigVariable3 %>

I believe a number of server side templates use such tags. It'll be so helpful to atom-beautify understood this scenario

I think this is a duplicate of issue #136

Published ERB support to v0.25.0


Possibility to calculate values?

Some calculations like {rowvalue} * 12. Is it possible?

@niksmac can you provide an example use case?

Sure.
Lets say I am building an invoice. Where I want the quantity to be multiplied by the rate to get them price. Makes sense?

Maybe there should be a Filter that allows basic mathematical operations:
{quantity * rate} € → {3 * 4,99} € → 14,97 €
{rowvalue * 12} → {10 * 12} → 120
${=SUM(value1,value2,value3)} → ${=SUM(10,20,30)} → $70
I guess this would also need rounding and decimals parameters then…

@niksmac maybe you're interested in working on such filter? I think most things are already there and could be integrated via existing frameworks. Data Populator's API is pretty basic and open as it is all based on JavaScript…

@nitrada Yep, but only after a month.

that would be great!

@niksmac did you look into adding those basic math filters? ;-)


TypeError: Promise.allSettled is not a function (SOLVED)

If you get this error, please upgrade your node version.
Promise.allSettled is available in node version >= 12.9
I leave this issue open in case others have the same issue.

Leaving issues open that aren't really issues makes tracking bugs difficult. Sorry, I am going to close. :)


python311Packages.slither-analyzer: add pythonImportsCheck and passthru.tests

Description of changes
cc https://github.com/NixOS/nixpkgs/issues/294418

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

@ofborg build slither-analyzer

The impor tests did not detect these regressions:
$ ./result/bin/slither --version
Traceback (most recent call last):
  File "/nix/store/f192lm98gx05v1awypjnp834qpckyfy0-python3.11-slither-analyzer-0.10.1/bin/.slither-wrapped", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "/nix/store/f192lm98gx05v1awypjnp834qpckyfy0-python3.11-slither-analyzer-0.10.1/lib/python3.11/site-packages/slither/__main__.py", line 746, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
  File "/nix/store/f192lm98gx05v1awypjnp834qpckyfy0-python3.11-slither-analyzer-0.10.1/lib/python3.11/site-packages/slither/__main__.py", line 760, in main_impl
    args = parse_args(all_detector_classes, all_printer_classes)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/f192lm98gx05v1awypjnp834qpckyfy0-python3.11-slither-analyzer-0.10.1/lib/python3.11/site-packages/slither/__main__.py", line 301, in parse_args
    version=require("slither-analyzer")[0].version,
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/ia0zlw106xb1d3vk9swyh8hgb0jfaycc-python3.11-setuptools-69.1.1/lib/python3.11/site-packages/pkg_resources/__init__.py", line 952, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/ia0zlw106xb1d3vk9swyh8hgb0jfaycc-python3.11-setuptools-69.1.1/lib/python3.11/site-packages/pkg_resources/__init__.py", line 813, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/nix/store/ia0zlw106xb1d3vk9swyh8hgb0jfaycc-python3.11-setuptools-69.1.1/lib/python3.11/site-packages/pkg_resources/__init__.py", line 859, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (eth-utils 4.0.0 (/nix/store/rs3rsrymslv2cs85fdyqcxhsj3rp0pl6-python3.11-eth-utils-4.0.0/lib/python3.11/site-packages), Requirement.parse('eth-utils<3,>=2.0.0'), {'rlp', 'eth-rlp', 'eth-keys', 'eth-keyfile'})

I am working on a PR right now. I will keep here updated.

@hellwolf See https://github.com/NixOS/nixpkgs/issues/294418.


fix Adafruit tutorial URL in the README

The previous URL was broken and this one seemed to be the closest match on the site.

Thanks for the pull request!


Using a node twice without it getting changed in-place

I am trying to implement a leakyrelu function (I know one exists already but I think it is possibly broken, but I do need to check that though). I am trying to do it by chaining nodes together (I am also aware this would probably be much faster to do as one op, but I was just trying to get it to work like this for now).
So I write this code (not a full leakrelu, just a relu rn):
func customLeakyRelu(x *G.Node, alpha float64) (*G.Node, error) {
	var err error
	var alphaVal interface{}
	switch x.Dtype() {
	case T.Float64:
		alphaVal = -float64(alpha)
	case T.Float32:
		alphaVal = -float32(alpha)
	default:
		return nil, fmt.Errorf("leakyrelu can only be used on float64 and float32")
	}

	rect, err := G.Rectify(x)
	if err != nil {
		return nil, err
	}
	return rect, nil
}

This results in a behaviour that rectifies an input as expected:
we inputted:
⎡-0.1   0.3   0.5⎤
⎣  -2     1     2⎦

we got
⎡ -0  0.3  0.5⎤
⎣ -0    1    2⎦

However, adding a different node in parallel to the rectify node changes the output of the rectify node, even when we just don't use the value of that other node:
func customLeakyRelu(x *G.Node, alpha float64) (*G.Node, error) {
	var err error
	var alphaVal interface{}
	switch x.Dtype() {
	case T.Float64:
		alphaVal = -float64(alpha)
	case T.Float32:
		alphaVal = -float32(alpha)
	default:
		return nil, fmt.Errorf("leakyrelu can only be used on float64 and float32")
	}

	rect, err := G.Rectify(x)
	if err != nil {
		return nil, err
	}
	alphaNode := G.NewConstant(alphaVal, G.WithType(x.Dtype()))
	multAlphaNode, err := G.HadamardProd(x, alphaNode)
	if err != nil {
		return nil, err
	}
	var _ = multAlphaNode
	return rect, nil
}

we inputted:
⎡-0.1   0.3   0.5⎤
⎣  -2     1     2⎦

we got
⎡ 0.001  -0.003  -0.005⎤
⎣  0.02   -0.01   -0.02⎦

As you can see, the HardmanProd node affected the output of the rectify node, which I'm assuming is because they share the same underlying data. Is this desired behaviour? If so, is there a way to copy the tensor x in the graph to allow it to be used for two nodes?

I think I fixed this. Giving the constant node a name seems to stop this problem from happening. I feel like there should be an error that warns you that a node shares a name with another node. Here is the code that seems to work for me:
func customLeakyRelu(x *G.Node, alpha float64) (*G.Node, error) {
	var err error
	var alphaVal interface{}
	switch x.Dtype() {
	case T.Float64:
		alphaVal = -float64(alpha)
	case T.Float32:
		alphaVal = -float32(alpha)
	default:
		return nil, fmt.Errorf("leakyrelu can only be used on float64 and float32")
	}

	rect, err := G.Rectify(x)
	if err != nil {
		return nil, err
	}
	alphaNode := G.NewConstant(alphaVal, G.WithType(x.Dtype()), G.WithName("uniquename"))
	multAlphaNode, err := G.HadamardProd(x, alphaNode)
	if err != nil {
		return nil, err
	}
	var _ = multAlphaNode
	return rect, nil
}


Fix RandomState.seed() for NumPy 2 compatibility

Close #8392.

Would it be a lot of work to push this (and the other copyto one) through and create a 13.2.1 release?
It was unfortunate that we didn't notice these earlier, but unfortunately they do block downstream projects tests to succeed with NumPy 2.

/test mini

To note: unfortunately, my first suggestion was incorrect.  It only works on NumPy 1.x due to the value-based casting safety check, but unfortunately fails on 2.0.
If it helps, I can create a PR with the new suggestion.

If it helps, I can create a PR with the new suggestion.

Can I ask you to create the new PR? Thanks!


k8s: do not create service if nodeport is 0 in port fields for LB/NodePort services

Fixes #14343
This field is independent of the CNI. The NodePorts are assigned by kube-apiserver.
With kube-proxy - 4.9 Kernel. As from the kubectl get svc output we can see that there is no NodePort assigned to the service.

From Cilium's side, we only need a minor change in the service parsing step. If currently no NodePort is assigned to a port field for NodePort service we assume the NodePort to be 0(default value of uint16 in golang) and create a service for that port.
net-next kernel with Cilium BPF NodePort enabled -

To honor the aforementioned field in Service spec we need to make sure that if the NodePort is 0 then we don't add the corresponding NodePort service to Cilium.
net-next with the changes proposed in the Pull Request.

To test this kube-apiserver must run with --feature-gates=ServiceLBNodePortControl=true
Honor `allocateLoadBalancerNodePorts` in Kubernetes LoadBalancer service spec.

test-me-please

test-me-please


[Sema][CSApply] Be more conservative while emitting always true conversion diagnostic

Be more conservative on always true conversion diagnostics when functions are involved.

Resolves SR-13789.

@hborla -- Do you think this is the right approach?  The question here is how to best deal with the fact that function casts behave differently in the runtime and compiler (the compiler can perform argument/return type conversions that the runtime cannot perform).  The previous code emitted some inappropriate diagnostics because of this distinction.

@hborla -- Do you think this is the right approach? The question here is how to best deal with the fact that function casts behave differently in the runtime and compiler (the compiler can perform argument/return type conversions that the runtime cannot perform). The previous code emitted some inappropriate diagnostics because of this distinction.

@tbkka I don't have a deep understanding of the runtime, but from the tests I ran, the runtime couldn't perform any cast other than when the function types were equal, is that really the case? Or there are other situations when the runtime cast is possible?
Because if this always fails, I thought that maybe we can emit a tailored "runtime cannot perform, cast always fails" warning, but not sure, I end up being more conservative to avoid false positives.

The runtime can only cast functions when the arguments and return type are exactly identical.  The only permitted difference is in throwing.  You can read the details here:
https://github.com/apple/swift/blob/d5d9e48d37654054cd6fdcc834fd98c54e64a051/stdlib/public/runtime/DynamicCast.cpp#L1167

Awesome! Thanks for the reference :)
We can definitely detect those situations and otherwise emit a warning that the runtime cannot convert the types. WDYT?

This is not ready yet, as it still has a lot of things to fix as it requires some changes involving TypeChecker::typeCheckCheckedCast, I'll ping you as soon as I can make this work :)

@swift-ci Please smoke test

@swift-ci Please smoke test

Sorry, this completely fell off my radar! Overall looks much better, I have left a couple comments inline.

No worries, thank you for taking a look :))
I'll get back to this and address the points soon, thanks again for the review!

Sorry, this completely fell off my radar! Overall looks much better, I have left a couple comments inline.

No worries, thank you for taking a look :))
I'll get back to this and address the points soon, thanks again for the review!

@xedin Thanks for the review! I think all points were addressed :)

Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

There is a lot of commits, I think will be a good idea just to squash this one. WDYT?

Sounds good to me!

Squashed! Thank you @xedin :)


Update collection-log-luck with visual overlay

Check out the updated demo here: https://github.com/peanubnutter/collection-log-luck

In case the code is confusing, here's an explanation: calculating luck is potentially expensive (a few milliseconds or more in rare cases), so we can't afford to do this on the game thread every frame. Instead, the first frame a calculation request is issued. On subsequent frames, no overlay is shown until the result is available. Then, the cached result is used from them on.


Problems with CWV data

Hello,
Can someone please guide me to find the problem?
(and I hope this is the right place to ask this, if not, sorry for that)
(also, please consider that all you can see was done by me after watching tutorials and reading blog posts, I'm NOT a programmer)
Here is my setuo in GTM.

Here is data from GA4

Big Query linking

In GCP I have this

When I use example queries found here - https://web.dev/vitals-ga4/#lcp-fid-and-cls-at-the-75percent-percentile-(p75)-across-the-whole-site I get:

Also, using this query example https://web.dev/vitals-ga4/#all-individual-lcp-values-from-highest-to-lowest, I'm getting no data.

My goal is to monitor Core Web Vitals like this (it's a print screen from the blog post here - https://web.dev/vitals-ga4/) but looks like I've done something wrong since I can't see data correctly.

Any help would be appreciated.
Thanks!

Confirmation that GA4 receive the right data.

And a syntax error for the first query - Quote from the blog post
For Web Vitals events, the last value sent is always the most accurate one, so before performing any analysis, it's important to filter for just those values. The code snippet provided by the web-vitals JavaScript library to send data to Google Analytics 4 includes sending a unique ID per metric, so you can use the following query to limit your results to just the last-received value for each metric ID:
Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
SELECT *, IF (ROW_NUMBER() OVER (
PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
) = 1, true, false) AS is_last_received_value
FROM bigquery_project_id.analytics_XXXXX.events_*
WHERE event_name in ('CLS', 'FID', 'LCP') AND
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
) WHERE is_last_received_value
)

Hey @Zavastin this seems like more of a question for Stack Overflow with the #core-web-vitals tag (FYI: people on my team follow this tag, as well as many community members).
This GitHub repo is really just for the web-vitals JS library, and it looks like that part of the process is working fine for you (since the data is showing up in GA4).
The primary tip I'll give you when posting on Stack Overflow though is to include both a screenshot of the event params you're seeing for the LCP, CLS, and FID events in BigQuery as well as the full queries you're using. Right now both of those are hidden in your question, and I suspect that's where your issue is (based on the fact that everything else looks to be working).


can i used it by C#?

can i used it by C#?
What time can provide C # version？
Why isn't the official c # demo?
thanks

The TensorFlow project owners maintain language bindings in a few languages, C# is not one of them (see https://www.tensorflow.org/api_docs/). However, we do encourage the community to build and maintain bindings for other languages. You may find https://github.com/migueldeicaza/TensorFlowSharp to be of interest.

@asimshankar Why is there no c # version?It is difficult to?

As you can imagine, we don't have enough cycles to do all that we'd like to. So we try to provide enough that can be extended by others in the community and appreciate efforts like TensorFlowSharp.

@asimshankar I hope to support the c # version, after all, the usage rate is very high, and I hope that the team of tensorflow should not reject c #. Thank you


IE 11 BUG: Blank footer filling the page

Background:
https://trello.com/c/UjosBuwP/338-ie-11-bug-blank-footer-filling-the-page
Solution:

IE 10 & 11 have a bug with the min-height for a flex container. The workaround is to make the container a flex element itself, Therefore made the html a flex container as well,

I verified this fix the footer issue in IE11


Enable perfsprint linter

The PR enabled perfsprint linter and fixes all errors generated by it
fixes https://github.com/prometheus/prometheus/issues/13668

#14091 was submitted slightly before this, and it already passes all CI tests. I'll review #14091 and close this one.
@tesla59 you also addressed concatenation and Errorf here (in contrast to #14091). If you feel that should still be done, let's discuss.

OK, looks like #14091 excluded the string concatenation case mainly because there were so many instances of it.
@tesla59 maybe there is an easy way to salvage this PR to handle all the string concatenation cases. I would recommend to get in touch with @alexandear to avoid working in parallel again.


Small issues when running Migrating from OpenAI to Open LLMs Using TGI’s Messages API in Colab

I tried running Migrating from OpenAI to Open LLMs Using TGI’s Messages API in Colab and found the following issues:

There is a compatibility issue when doing the upgrade of package versions in the first cell.

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchaudio 2.3.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
torchvision 0.18.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.

There is an issue with create_inference_endpoint since it looks like it is not taking the API_TOKEN correctly.

LocalTokenNotFoundError: Token is required (`token=True`), but no token found. You need to provide a token or be logged in to Hugging Face with `huggingface-cli login` or `huggingface_hub.login`. See https://huggingface.co/settings/tokens.

Llama index has suffered some changes in the API that generate errors when running the code.

ImportError: cannot import name 'OpenAILike' from 'llama_index.llms' (unknown location)

Fixed via #167


amMomentConfig.timezone has no effect

I just upgraded to 1.0.0 and amMomentConfig.timezone doesn't seem to do anything anymore.
It used to be that the following would always display in the set timezone:
<td>{{ appointment.startsAt | amDateFormat: 'l LT' }}</td>

Now it appears that amDateFormat doesn't apply any timezone shifting.  Am I missing something?
amDateFormat used to run the following in version 0.10.3
return amMoment.applyTimezone(date, timezone).format(format);

now it skips applyTimezone which is what converted it to the default timezone and simple returns this:
return date.format(format);

Is there some new way to set up the default timezone, or make sure it gets applied correctly?

It should be handled by preprocessDate(), which is called by amDateFormat

Sounds good, but preprocessDate doesn't seem to do that.  Here's it's full code:
				this.preprocessDate = function (value) {
					// Configure the default timezone if needed
					if (defaultTimezone !== angularMomentConfig.timezone) {
						this.changeTimezone(angularMomentConfig.timezone);
					}

					if (angularMomentConfig.preprocess) {
						return angularMomentConfig.preprocess(value);
					}

					if (!isNaN(parseFloat(value)) && isFinite(value)) {
						// Milliseconds since the epoch
						return moment(parseInt(value, 10));
					}

					// else just returns the value as-is.
					return moment(value);
				};

There is a call to changeTimezone in there, but that just sets up global configs, it doesn't actually modify the moment object in question.
For contrast, here's how applyTimezone did it before:
				this.applyTimezone = function (aMoment, timezone) {
					timezone = timezone || angularMomentConfig.timezone;
					if (!timezone) {
						return aMoment;
					}

					if (timezone.match(/^Z|[+-]\d\d:?\d\d$/i)) {
						aMoment = aMoment.utcOffset(timezone);
					} else if (aMoment.tz) {
						aMoment = aMoment.tz(timezone);
					} else {
						$log.warn('angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js?');
					}

					return aMoment;
				};

You can clearly see the default timezone retrieved at the top, and then the call to .tz later in the function to apply the timezone.
All of my dates in my app are displaying in UTC instead of the configured timezone.  Am I missing something?

Sounds like it could be a regression. The change was introduced in commit 4f3010b34058d90a093137e5a9b359e1a140670c.
Any chance you can create a regression test case (a unit test case that passed in 0.10.3, but fails with 1.0.0) ?

I can sure try.  Let's see what I can come up with.

Thank you!

Here's a failing test.  It passes on 0.10.3
		it('should apply the configured timezone to moment objects', function () {
			angularMomentConfig.timezone = 'Pacific/Tahiti';
			var timestamp = moment.tz('2012-01-22T12:46:54Z', 'UTC');
			expect(amDateFormat(timestamp, '(HH,mm,ss);MM.DD.YYYY')).toBe('(02,46,54);01.22.2012');
		});

It's just like this one, except it uses a moment object instead of a JS Date.
		it('should respect the configured timezone', function () {
			angularMomentConfig.timezone = 'Pacific/Tahiti';
			var timestamp = Date.UTC(2012, 0, 22, 12, 46, 54);
			expect(amDateFormat(timestamp, '(HH,mm,ss);MM.DD.YYYY')).toBe('(02,46,54);01.22.2012');
		});

Spot on! Any chance you can create a PR with this test case and the fix?

I'm not sure I have the background to do so.  In 0.10.3, there is the applyTimezone function that is used all over the place.  In 1.0.0 it has been removed.  I'm not sure where the functionality is suppose to be removed due to the new amTimezone filter and what are regressions.  You might know better than I.

Actually, it is a little tricky.
In 0.10.3, amDateFormat had a parameter for the timezone, and if this parameter wasn't provided, it used the default timezone. As of 1.0.0, there is a new amTimezone filter that is used to set the timezone. So if amDateFormat would automatically apply the default timezone (in preprocessDate), it would override any timezone you may have set with amTimezone.
I believe that the best solution would just be to stop using amMomentConfig.timezone and set the default timezone through moment yourself, before you create any moment objects.

Ahh, see that's not that simple for me either.  All of my dates come down from the server in UTC so are parsed in moment as having a UTC timezone.  I want them to stay in UTC while doing processing, but I was using angular-moment to make sure they were always converted to the user's timezone before display.
I understand your reasoning, but this was my main reason for including angular-moment.  If angular-moment isn't going to do this moving forward, can you think of another way to make sure to convert the timezone on display?  (Also, you might want to remove the config option if it doesn't really do anything).

Hmm... Depending on what you actually do when processing, the timezone may not have any effect there anyway.
But if you wanted to achieve a pre-1.0.0 behavior, and don't need to override the timezone in specific cases with amTimezone, I believe the easiest way would be to declare a preprocess function as follows:
angularMomentConfig.preprocess = function(value) {
    if (!isNaN(parseFloat(value)) && isFinite(value)) {
       return moment(parseInt(value, 10));
    }
    return moment(value).tz('Desired timezone');
};

Not a bad idea.  I'm signing off of work for today, so I'll check on this tomorrow.  It might be the right thing for my project.
You still might want to consider removing the timezone option if it no longer affects amDateFormat, which is what the readme says it does now:
Time zone support

The amDateFormat and amCalendar filters can be configured to display dates aligned to a specific timezone. You can configure the timezone using the following syntax:

The other thing you might be able to do is hang an extra attribute on the moment object (ex: amMomentTimezoneOverriden) when it is set by amTimezone and then use that to determine if amDateFormat should use the default.  I don't know if a custom property would survive other processing though.

Thanks for the suggestions, I think updating the docs to reflect this would make more sense. Hanging an extra attribute on the moment object sounds like "too much magic" for me, and there will probably be some corner cases, etc.

I agree that splitting things up into multiple compossible filters made the project less complicated and more approachable, but it does seem like we've lost some important functionality here.  It used to be that you could set a default display timezone for your whole project, and then it would be used, unless you specifically overrode it in amDateFormat, but now it seems that there is no way to do that.  I can add a preprocessor like you suggested, but that prevents me from overriding the timezone in specific instances because it forced the timezone every time, or I can use the amTimezone filter, but that requires the timezone be specified every time.
A related question: If the timezone option in angularMomentConfig doesn't set the default display timezone, does it have any other purpose?  Should the entire config option be removed.

Does the problem is solved @CyborgMaster  ?

Not really.  I had to use the preprocess function suggested by @urish, so I'm hard coded to one timezone per browser instance.

I just ran into this issue as well. It's a shame that the constant is no longer working. +1

+1
Having trouble setting default timezone


Mac: Turn on Functional Test Categories.MacTODO.FailsOnBuildAgent

This may require test changes and updates to the build machine.  Please investigate and see why the tests are failling.

Fixed by #1250


Get old pipeline building - new NLDI service & yml linkages

I updated to scipiper to 0.0.20 (I forget what version this repo was last built with), but it was giving a lot of implicit target errors which I fixed by using remake.yml to link all of the other makefiles. In addition, NLDI changed from cida.usgs.gov to labs.waterdata.usgs.gov and I fixed that (though, it does have intermittent failures but just rebuilding eventually gets you passed those). Lastly, I was struggling with geoknife and precip data coming back for the wrong dates. This appears to be an issue with GDP and the specific dates I was using, so I am ignoring for now and just skipping over precip to get this to build (though, the skips aren't committed here).
Update: I did run this using viz_config-example.yml as my viz_config.yml which is using Hurricane Florence dates rather than Hurricane Barry (from July 2019 and in the Makerspace-example branch) and the precip data from geoknife downloaded as expected.

I also just added the creation of the outro makefile as part of the pipeline instead of standalone and committed so that you didn't have to remember to update it yourself.


BocchiBot Premium

Hi, sorry for bothering, but I would like to ask how can I get BocchiBot premium, if its possible its current price and if I would need a paid API. - Thanks in advance 😃.

Hi, sorry for bothering, but I would like to ask how can I get BocchiBot premium, if its possible its current price and if I would need a paid API. - Thanks in advance 😃.

The premium commands (multi lewds, multi fetish, and API-less nHentai downloader) price is IDR 30,000, it's about USD 2.16

Hi, sorry for bothering, but I would like to ask how can I get BocchiBot premium, if its possible its current price and if I would need a paid API. - Thanks in advance 😃.

The premium commands (multi lewds, multi fetish, and API-less nHentai downloader) price is IDR 30,000, it's about USD 2.16

Oh that´s cool, how can I buy it? Maybe PayPal?

Oh that´s cool, how can I buy it? Maybe PayPal?

Oh that´s cool, how can I buy it? Maybe PayPal?

Sure thing! You can contact with me that is listed in README.

Oh that´s cool, how can I buy it? Maybe PayPal?

Sure thing! You can contact with me that is listed in README.

Ow then im going to do it :D
Thanks for answering.

Ow then im going to do it :D
Thanks for answering.

@Baguettou Hi! As you can see this repository is now available for funding. You can use Ko-fi platform to buy the commands.

@Baguettou Hi! As you can see this repository is now available for funding. You can use Ko-fi platform to buy the commands.

Hi, thanks and sorry fot taking so long xD.

Hi, thanks and sorry fot taking so long xD.


Trainer

"Implement a Trainer, which is a wrapper of low-level DataParallel, TensorParallel and PipelineParallel modules. The user just plugs in their model and dataloader and trains. Similar to transformers.
trainer = Trainer(
	model=model,
	train_dataloader=train_dataloader,
  eval_dataloader=eval_dataloader,
  optimizers=optim,
  num_epochs=10,
	callbacks=[LearningRateFinder()]
)

trainer.fit()

I think I'll do this tonight since it seems the easiest

@isamu-isozaki Awesome, thank you! I will get back to you in a few hours with all the details!!

@xrsrke I was thinking of maybe just inheriting from transformer's Trainer. wdyt?

@xrsrke  No, I just checked the Trainer from Transformers. They modified our model's devices and stuff. We prefer implementing our own so we can incorporate distributed logging and callback in a specific rank, ParallelMode... and future changes. I just added some demo code (link).
Also one note, we only apply a specific parallel mode based on the parallel_context. For example, if data_parallel_size is greater than 1, then we wrap the model with DataParallel.


Make .envrc docker-compose v2 compatible

Fixes https://github.com/GaloyMoney/galoy/issues/689 but NOT backwards compatible. When we merge this everyone needs to use docker-compose v2. Including GitHub actions and concourse... not sure if we're ready for it.
Alternatively you can run:
docker-compose disable-v2

cc @nicolasburtey

the PR here has no effect on my end @bodymindarts

@daviroo has also been running into this with docker compose v2 fi

docker-compose disable-v2 seems to work

the new issue I have now:
error connecting to mongodb
    user: "testGaloy"
    address: "<IP_ADDRESS>:27017"
    db: "galoy"
    err: {
      "type": "MongooseServerSelectionError",
      "message": "getaddrinfo ENOTFOUND galoy-mongodb-0.galoy-mongodb-headless.galoy-bbw-galoy.svc.cluster.local",
      "stack":
          MongooseServerSelectionError: getaddrinfo ENOTFOUND galoy-mongodb-0.galoy-mongodb-headless.galoy-bbw-galoy.svc.cluster.local
              at NativeConnection.Object.<anonymous>.Connection.openUri (galoy/node_modules/mongoose/lib/connection.js:830:32)
              at galoy/node_modules/mongoose/lib/index.js:342:10
              at galoy/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5
              at new Promise (<anonymous>)
              at promiseOrCallback (galoy/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
              at Mongoose.Object.<anonymous>.Mongoose._promiseOrCallback (galoy/node_modules/mongoose/lib/index.js:1129:10)
              at Mongoose.Object.<anonymous>.Mongoose.connect (galoy/node_modules/mongoose/lib/index.js:341:20)
              at setupMongoConnection (galoy/src/services/mongodb/index.ts:34:20)
              at galoy/test/jest.setup.js:7:20
              at Promise.then.completed (galoy/node_modules/jest-circus/build/utils.js:390:28)
              at new Promise (<anonymous>)
              at callAsyncCircusFn (galoy/node_modules/jest-circus/build/utils.js:315:10)
              at _callCircusHook (galoy/node_modules/jest-circus/build/run.js:181:40)
              at processTicksAndRejections (internal/process/task_queues.js:95:5)
              at _runTestsForDescribeBlock (galoy/node_modules/jest-circus/build/run.js:47:7)
              at run (galoy/node_modules/jest-circus/build/run.js:25:3)
              at runAndTransformResultsToJestFormat (galoy/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:167:21)
              at jestAdapter (galoy/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:82:19)
              at runTestInternal (galoy/node_modules/jest-runner/build/runTest.js:389:16)
              at runTest (galoy/node_modules/jest-runner/build/runTest.js:481:34)
      "reason": {
        "type": "ReplicaSetNoPrimary",
        "setName": "rs0",
        "maxSetVersion": 3,
        "maxElectionId": "7fffffff000000000000000e",
        "servers": {},
        "stale": false,
        "compatible": true,
        "compatibilityError": null,
        "logicalSessionTimeoutMinutes": null,
        "heartbeatFrequencyMS": 10000,
        "localThresholdMS": 15,
        "commonWireVersion": 9
      }
    }


Upgrade js-yaml

Sorry I'm trying to figure out the problems with GitHub Actions, I might have just done it, but we've got some conflicts now. Could you have a look?

@philsturgeon, the CI-CD.yml was missing a pull_request: I've fixed, but I need someone to allow running them before they'll trigger.

Thank you! I just landed on that same conclusion myself #238 🤣  Will merge yours as soon as its done.

yikes, npm run test worked on my machine ;)
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"

Are secrets available in PR jobs?
      - name: Run tests
        run: npm run coverage:browser
        env:
          SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
          SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}

Is this the problem:

Got it! I dont know what's been going on around here but there's a few problems that need fixing. I'll get things sorted out when I dont feel like I'm dying! :D Thanks for your patience.


make template_enricher support prometheus alert annotations (#1422)

Current template_enricher only support prometheus alert.labels, make it support alert.annotations.
The same feature already exists in mention_enricher

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Custom output file names

I would like to be able to specify the exact name of the file containing the final MD simulation frame.
At the moment the file name is generated automatically from struct_name, ensemble type and simulation parameters. Since I would like to use the last frame of one MD run as the starting point of another MD run, it would make it easier to write scripts and input files if I could fix the name of this output file to something arbitrary.

That sounds useful, we'll have to think a bit about the best way of implementing this.
Until then, there are a couple of workarounds:

You can read the final image from the trajectory, if the frequency is set to align with the final MD step. You can define that file name through --traj-file in the CLI
If you're using the Python interface, the _final_file attribute of the MD object will tell you the Path that will be used
Currently this will still include the temperature for MD, but you can set --file_prefix, which removes the struct_name, ensemble etc. For example, --file-prefix example will save the final file to example-T300.0-final.xyz

This last point is where the slight complication for a perfect solution comes in. We can (and may) remove the temperature in this case, but we also need to distinguish between -final files if carrying out heating, which limits how much we can easily allow users to specify for these.


npm package option?

As much as I love homebrew, it would be nice to have an OS-agnostic supported version of this that can be distributed with projects.
For example, I would like to have the Azure CLI available as a devDependency in the package.json of an Azure Function, so I can write npm deployment scripts.
The only other option I have is using serverless, but the local testing functionality is just not up to scratch :(

If you would like to suggest NPM as a distribution alternative, please file a feature request.


RFC: hiera classifier

I saw that you talked about a future with other ways of classifying. Would it be possible to just use a CLI option like --roles in the bolt command? That would prevent haven dozens upon dozens of files each specifying a different role.

My point is to be able to run bolt plan run control_repo::apply to apply on every agent with its correct role.. i.e. you don't need to keep the agent -> role mapping in your head. This allows to do "hosts" unit testing as well (see spec/hosts for an example).
Second point is that big infras with >100 servers are out of this repo scope.. I'd say one shouldn't use push model for such big infra.
Third point is to keep the repo structure as close to an usual control repo as possible. I.e. you should be able to drop this repo into an environment directory and your puppet server should be able to use it. Though this point is not a hard requirement here.
Though I understand that writing a file per node is not the activity ppl usually like to do.. My first idea was to use bolt inventory vars for classification. I realized quickly that it doesn't work for dynamic inventories (like terraform or lima or any cloud). While agent hostnames can be static their transport settings will change frequently.. so hiera was easiest and familiar enough choice for everyone.
If you still would like to pass a role via CLI I'd say easiest way is to write another plan next to apply.pp which will read the role parameter and include it. You'll not be able to use bolt apply (only bolt plan run control_repo::<new_plan>) then though..


Dragon Slayer I Crandor Dungeon shortcut requirement

If you teleport away after sailing to Crandor but before killing Elvarg, the quest helper prompts you to repair the ship again "because you didn't unlock the shortcut." The only requirement to use the Crandor Dungeon shortcut is to have sailed to Crandor, you do not have to have used the shortcut from the Crandor side.

I know previously, as well as according to the wiki, you need to have opened the shortcut for it to work. Is this something you tried without having unlocked it yourself, and do you know if it was a change with a specific update?

I was able to open the shortcut from Karamja without unlocking it first on the day I opened this issue. I don't know when it was changed.


ci: gh actions patch

Adding gh actions patch, for executing tests before every pr in main branch.

At this moment the tests are useful. In case of an error occures, gh actions wont respond with a failed test.
FIX NEEDED


version check not working properly in create-platformatic

Platformatic is not supported on Node.js v16.19.0.
Please use one of the following Node.js versions >= 16.17.0 or >= 18.8.0 or >= 19.0.0.

@mcollina how I may help with this bug?

@malforsaja try firt to reproduce it, then check why it happens.
the problem should be here: https://github.com/platformatic/platformatic/blob/main/packages/create-platformatic/src/index.mjs#L34

I think the problem is in https://github.com/platformatic/platformatic/blob/07177bfe9c89c0f24eb3a9d8004a09a75031b11f/packages/create-platformatic/src/utils.mjs#L109-L119 which is already in util.

@malforsaja go ahead and take a look!

I think the problem is in
https://github.com/platformatic/platformatic/blob/07177bfe9c89c0f24eb3a9d8004a09a75031b11f/packages/create-platformatic/src/utils.mjs#L109-L119
which is already in util.

@mcollina yes the problem is on that function, I'm checking it

Closed in https://github.com/platformatic/platformatic/pull/624.
Thanks @malforsaja


Support Swift 2.0 and watchOS

Just a small question about swift 2.0

Oops. I don't have merge permissions. :+1: to merge.


fix: remove test .json files

Closes #24

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Advanced Configuration of a Task

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

Expected Behaviour

Please correct me if I am wrong, but once a task has been created, I am unable to see the "Frame step" parameter from the "Advanced configuration" if it has been modified. For example, when I upload a video as a single task and I set "Frame step: 5", then I would like some option that tells whether the frame step was modified.
Current Behaviour

As of now, when you click on a task, the default advance configurations that are shown are: Overlap size, Segment size, and Image quality as shown on below image. If I modify the "Frame step" in Advance configuration to 5, I would also like to see a box with the name "Frame step" and value equal to 5.

Context

There are some tasks where the "Frame step: 5" and others with no defined frame step. I want an easy way to see whether a video was skipped or not by just clicking on the task.
As for now, I have to look at the frame count of the original video to see whether the task had a defined frame step or not.
Next steps
You may join our Gitter channel for community support.

Hi, @eplatero97
That is a good point, let us know if you can help up with the implementation.


How to use API path parameter in request/request-promise libraries?

How to use API path parameter in request/request-promise libraries?
`const express = require('express');
const router = express.Router();
const rp = require('request-promise');
router.post('employee/:id', (req, res) => {
const id = req.params.id; // I dont know how to use this in request library
handleRequest(req, res);
})
function handleRequest(req, res) {
const id = req.params.id; // I dont know how to use this in request library options?
var options = {
method: req.method,
uri: 'http://api.anotherhost.com/external/'+ req.path,
body: req.body,
qs: req.query,
json: true
};
rp(options)
.then((success) => res.send(success))
.catch((err) => res.status(err.statusCode).send(err.message));
}`
Question:  https://stackoverflow.com/questions/53706880/how-to-use-api-path-param-in-npm-request-request-promise-libraries

Your goal is to have the path parameter value appended to your options.uri string, right?
This is rather a question for express but anyways. First, get the path from req like this: https://stackoverflow.com/questions/42735645/express-js-get-url-path-without-any-additional-parameters
And then it’s just a matter of string concatenation for your options.uri parameter.
I hope this helps!


Update README.md to include instructions on grabbing ggml submodule

A simple change.
the instructions didn't mention pulling the ggml submodule.

Closing as the issue was solved in another PR. Thank you for spotting this @harperreed !


cellular_component -> BFO mapping, switch to material entity

cellular_component is currently mapped to BFO continuant.  It should actually be mapped to BFO material entity. This is justified because, while we have terms for things that sound immaterial in CC, they actually refer to the contents of these spaces (vesicle lumen = content of vesicle).  Fixing this removes a bunch of confusing high-level inferences coming from relation domain and ranges. e.g.

+1

Fixed - Complete fix for overzealous BFO inference requires #13396 too.


japanese doc translation updated

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues

Thank you.


Zip: No such module 'GoogleSignInSwift' on import

[REQUIRED] Step 1: Describe your environment

Xcode version: 13.4.1
Firebase SDK version: 9.2.0
Installation method: Zip file
Firebase Component: Google Sign In
Target platform(s): iOS

[REQUIRED] Step 2: Describe the problem
I've attempted to use the new GoogleSignInSwiftSupport xcframework in Firebase.zip in version 9.2.0. I can't get the compiler to import the module GoogleSignInSwift. Additionally, attempting to import GoogleSignInSwiftSupport (as the xcframework is named) produces additional errors.
I removed all other installations of Firebase dependencies from alternate sources, cleaned my build folder, and restarted Xcode, but the issue persists. If I remove the GoogleSignInSwift import, my project builds fine (i.e., all my other imports from this installation method are working).
Steps to reproduce:

Add the GoogleSignInSwiftSupport xcframework from the Firebase zip to an iOS project, along with the GoogleSignIn framework & dependencies + resources
Add any other Firebase frameworks as needed
Attempt to import GoogleSignInSwift in the project
Build

What happened? How can we make the problem occur?
This could be a description, log/console output, etc.
The error No such module 'GoogleSignInSwift' is produced.
If instead you attempt to import GoogleSignInSwiftSupport, in addition to the error No such module 'GoogleSignInSwiftSupport', you'll also receive a handful of other errors multiple times:
Redefinition of module 'GoogleSignInSwift'
Redefinition of module 'Swift'
If you have a downloadable sample project that reproduces the bug you're reporting, you will
likely receive a faster response on your issue.
Relevant Code:
import GoogleSignInSwift

Thanks for reporting this, @ionothanus. I was able to reproduce the issue. I'll inform the engineers about this and see what we can do.

I've reproduced.  It looks like there are various inconsistencies in the CocoaPods/Xcode/Zip Builder tooling when the module name is different from the pod name.
We can do a bit more investigation, but as it looks now, we may need to drop GoogleSignInSwiftSupport from the zip as long as its module name does not match the pod name.
Sorry about the misfire in the 9.2.0 release.
cc: @petea


Add block to add extra content to footer

For example, in order to add Disqus comments.
(I must admit I had trouble finding a name for the block...)

I'm +1 on more block structure, it makes customizing far easier.
The name extra is too generic though, I feel. Perhaps 'extrafooter', which is consistent with extrahead block.

Thanks for your feedback! I updated accordingly.

Great, thanks!


[magnum-auto-healer] Refactor autohealing to improve code climate

What this PR does / why we need it:
Refactor magnum-auto-healer to make golangci-lint happy.
Which issue this PR fixes(if applicable):
Relates to #1883
Special notes for reviewers:

Release note:

NONE

/approve


Error - Cannot find name 'AsyncIterator'

When I clone the project and run tsc I get this error.
Solution is to add lib = ["es2015", "esnext"] to tsconfig.json
Can we add it be default or extract AsyncIterator and keep it inline with the codebase?

What version of tsc are using using? Does this happen if you run npm run compile?

tsc is 2.8.4
I am also able to observe this with npm run compile

I can't repo this and it also seems to build fine on travis: https://travis-ci.org/Microsoft/typescript-template-language-service-decorator/builds/407753482
What node version are you on? Can you also try re-installing the node modules to make sure you have the correct ts version

Closing as not reproducible


Nested Navigators in Redux

Hello,
I'm trying to set up a TabNavigator inside a StackedNavigator, sort of like this:
TabsNavigator = TabNavigator({
            HomeScreen: {
                screen: HomeScreen,
                navigationOptions: {
                    tabBar: () => ({
                        label: 'Home'
                    })
                }
            },
            MyAction: {
                screen: Settings,
                navigationOptions: {
                    tabBar: () => ({
                        label: 'Settings'
                    })
                }
            },
        }, {
            tabBarPosition: 'bottom',
            animationEnabled: true,
            swipeEnabled: true
        });
        ModalNavigator = StackNavigator({
            Home: {
                screen: TabsNavigator
            }
        });

My issue is, since I'm using Redux, I can pass the outer StackedNavigator the nav state easily enough:
import { ModalNavigator } from '../scenes';
const AppNavigatorWithRedux = connect()(ModalNavigator);
<AppNavigatorWithRedux
         navigation={navigation}
/>

But I don't know how to pass the TabNavigator's state down to it.  I'm assuming right now I'm going to have to wrap it in another component and get my other navigation state, but is there another/simpler way?
My reducer is:
import { ModalNavigator, TabsNavigator } from '../scenes';
const navReducer = (state, action) => {
    return {
        ModalNavigator: ModalNavigator.router.getStateForAction(action, state),
        TabNavigator: TabNavigator.router.getStateForAction(action, state)
    };
};

const appReducer = combineReducers({
    navReducer,
    mainReducer
});

So this should actually just work out of the box, and here's why:
Because TabsNavigator is set up as a screen on ModalNavigator, it will automatically nest routers. This means that the output of ModalRouter.getStateForAction actually contains the state from the tabs router.
ModalRouter is your app's main router, so it is the only reducer you need. You don't need to attach TabNavigator to redux manually.
Closing for now but please re-open if you run into issues with this approach

Looks like its working, thanks!


Stop support for python < 3.6

I also applied pyupgrade --py36-plus to automatically migrate the code.

Codecov Report

Merging #416 into master will decrease coverage by 2.31%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #416      +/-   ##
==========================================
- Coverage   99.68%   97.37%   -2.32%
==========================================
  Files          18       18
  Lines         949      913      -36
  Branches       74       74
==========================================
- Hits          946      889      -57
- Misses          3       21      +18
- Partials        0        3       +3

Impacted Files
Coverage Δ

flask_wtf/csrf.py
98.07% <100.00%> (-0.03%)
:arrow_down:

flask_wtf/file.py
91.66% <100.00%> (-8.34%)
:arrow_down:

flask_wtf/form.py
100.00% <100.00%> (ø)

flask_wtf/i18n.py
100.00% <100.00%> (ø)

flask_wtf/recaptcha/fields.py
100.00% <100.00%> (ø)

flask_wtf/recaptcha/validators.py
100.00% <100.00%> (ø)

flask_wtf/recaptcha/widgets.py
100.00% <100.00%> (ø)

tests/conftest.py
100.00% <100.00%> (ø)

tests/test_i18n.py
100.00% <100.00%> (ø)

tests/test_recaptcha.py
100.00% <100.00%> (ø)

... and 11 more

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 6ed4d50...aa890a6. Read the comment docs.


oidc discovery: encode metadata once and reuse

Signed-off-by: Monis Khan<EMAIL_ADDRESS>Release note:
NONE

Codecov Report

Merging #473 (d7edc41) into main (aa826a1) will decrease coverage by 0.07%.
The diff coverage is 76.19%.

@@            Coverage Diff             @@
##             main     #473      +/-   ##
==========================================
- Coverage   77.73%   77.65%   -0.08%
==========================================
  Files         111      111
  Lines        5591     5598       +7
==========================================
+ Hits         4346     4347       +1
- Misses       1077     1083       +6
  Partials      168      168

Impacted Files
Coverage Δ

internal/oidc/discovery/discovery_handler.go
76.00% <76.19%> (-12.89%)
:arrow_down:

cmd/local-user-authenticator/main.go
55.60% <0.00%> (-0.98%)
: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 aa826a1...d7edc41. Read the comment docs.


offsetWidth attribute is not a member of input element.

In the "input type=image" test case,
for "width" case, html5test check input element has "width" attribute and "offsetWidth" attribute.
For "height" case, html5test check input element has "height" attribute and "offsetHeight" attribute.
But, in the HTML5 spec, "offsetWidth" and "offset Height" is not a member of input element, as I know.
(http://www.w3.org/TR/html5/the-input-element.html#the-input-element)
In my opinion, just check the "width" and "height" attribute is enough for those cases.
Please check this issue.

OffsetWidth and offsetHeight are not the properties being tested. They are only used for checking if the width and height properties actually make the input element change its width and height in the rendered document.


Adaptive conformal prediction method with a conformity score

Description
Conformal Residual Fitting (or Fitted Residual Normalising as it has been name in MAPIE) is a regression conformity score that takes X into account and calculates adaptive intervals by estimation of the residuals of the base estimator.
Section 2.3.2 : Angelopoulos, A. N., & Bates, S. (2021). A gentle introduction to conformal prediction and distribution-free uncertainty quantification. arXiv preprint arXiv:2107.07511.
Fixes #316
Type of change

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

How Has This Been Tested?

[x] Classics tests for conformity scores
[x] Tests of compatibility with MapieRegressor
[x] Specific tests for this score

Checklist

[X] I have read the contributing guidelines
[ ] I have updated the HISTORY.rst and AUTHORS.rst files
[X] Linting passes successfully : make lint
[X] Typing passes successfully : make type-check
[X] Unit tests pass successfully : make tests
[X] Coverage is 100% : make coverage
[x] Documentation builds successfully : make doc

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (cf93146) 100.00% compared to head (87b033b) 100.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##            master      #327    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files           34        34
  Lines         3881      3993   +112
  Branches       413       425    +12
==========================================
+ Hits          3881      3993   +112

Impacted Files
Coverage Δ

mapie/conformity_scores/__init__.py
100.00% <ø> (ø)

...ie/conformity_scores/residual_conformity_scores.py
100.00% <100.00%> (ø)

mapie/regression/regression.py
100.00% <100.00%> (ø)

mapie/tests/test_conformity_scores.py
100.00% <100.00%> (ø)

mapie/tests/test_regression.py
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@candicemyt, don't forget to change HISTORY.rst 🙂


Indexing Metadata (high-frequency updates)

The problem when using a replicated or HA database is that updates can potentially be slow. They are slow because they must be done sequentially to ensure the ACID property of the database.
However, it is possible that the user may need to update data very, very often (several times per minute or second). Some examples.
A social network wants to be able to update the number of like items very often.
An e-commerce site may want to update the stock to display or not display an item.
To allow high-frequency updates we need to remove some of the consistency from the indexes. This can be done without impacting the rest if we only remove consistency in fields that we know are updated very often.
The proposal here is to have a specific route for updating meta-data. This route remains to be defined. Then once an update is received, it would go to a different update queue than the document updates. It would have priority. The content of these updates could not be used for indexing, but only for ranking and display. No parsing, no tokenization, no computation on fields.

I will close this issue in favor of our public roadmap.
I invite everyone interested in this feature to upvote it on the roadmap.


Make offsetExists behave correctly for isset on Collection

This PR changes the behaviour of offsetExists to be compatible with isset (which relies on offsetExists for objects implementing ArrayAccess). This PR maintains the current behaviour for all other collection functions that previously internally relied on offsetExists, replacing it instead with array_key_exists.
Resolves #31793

Hey @phroggyy, thanks for the pr. Can you send this to 6.x instead? We merge bug fixes there and then merge them into 7.x later on.

ah got it, thought it'd be backported from 7 to 6, will do!

Re-opened in https://github.com/laravel/framework/pull/31799


chore: fix naming and error messages

Fixes error messages concerning a function from Failed to ...() to Failed ...()
Renames GPU_MUST_SUCCESS to GPU_MUST_SUCCEED for better grammar.

chore: rename GPU_MUST_SUCCESS to GPU_MUST_SUCEED -> chore: rename GPU_MUST_SUCCESS to GPU_MUST_SUCCEED


Add placeholder support for LazyColumn

Fixes #771.

[x] Compose UI support
[ ] Android View support (BLOCKED)
[ ] UIKit support

@veyndan safe to close this now?


fix env version attribute

if multiple versions of httpie are installed on a machine, the env.config.__meta__.httpie attribute doesn't have the current version from __init__.__version__
this can cause problems if the env object is used to make decisions to enforce compatibility based on the httpie version.

Coverage increased (+0.01%) to 93.616% when pulling 6472ca55e16fab898476ce2f08ef71d57efaf3c3 on darshanime:version_number_fix into 95c33e31a2f7d35fb8cae3b4a392bb640503c3de on jakubroztocil:master.

Coverage increased (+0.01%) to 93.616% when pulling 6472ca55e16fab898476ce2f08ef71d57efaf3c3 on darshanime:version_number_fix into 95c33e31a2f7d35fb8cae3b4a392bb640503c3de on jakubroztocil:master.

Thanks!


Analog stick and trigger support

Adding additional ADCs to be able to support analog sticks and triggers.

Closing here, will re-open on the new GitHub if still wanted


ACQ/ILL: Librarian can enter invalid input and mandatory fields are broken

In the web form, librarian should not be able to enter invalid values, e.g. received date insert an integer.
It is not clear which ones are mandatory fields: some dates are mandatory, but when clicking on Create/Submit nothing happens, no visual feedback on the error.

Fixed for Acquisition with https://github.com/inveniosoftware/react-invenio-app-ils/pull/373, missing ILL


Parse error

FigmaQML have helped me a great deal in converting graphical elements to QML. Thank you for your dedication and hard work on FigmaQML.
Using the attached file, FigmaQML fails with a error message which could be somewhat more helpful. Please let me know if you require any further information or if there is anything else I can do to assist in resolving this issue. I appreciate your attention to this matter and look forward to a resolution.

The Figma-file is attached to this bugreport:
ContactWindow.fig.gz

Looks like service error - please retry. I succeeded just few minutes ago (Mac native build)

Looks like CORS issue (see: https://simplelocalize.io/blog/posts/what-is-cors/)
Below is the error log captured: - I have no idea how to fix in FigmalQML code. Probably WebAssembly version wont work within too big Figma documents. Please try the native FigmaQML - I havent see such issue there.
self.moduleConfig.printErr @ qtloader.js:370
qtloader.js:370 Requested MSAA sample count 8 but supported sample counts are QList(1) , using sample count 1 instead
self.moduleConfig.printErr @ qtloader.js:370
FigmaQML.html:1 Access to XMLHttpRequest at 'https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/7001d767-f9e2-4656-bde8-6fed726bd164' from origin 'https://mmertama.github.io' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
qtloader.js:370 QNetworkAccess: got HTTP status code 0 which is not expected from url: "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/7001d767-f9e2-4656-bde8-6fed726bd164"
self.moduleConfig.printErr @ qtloader.js:370
figma-alpha-api.s3.us-west-2.amazonaws.com/images/7001d767-f9e2-4656-bde8-6fed726bd164:1     Failed to load resource: net::ERR_FAILED
qtloader.js:370 qml: Network error: 399, Not Found


Can't encode transcription

Environment

Tesseract Version: tesseract alpha - 4.0.0
Platform: Linux Ubuntu 16.04 LTS

Tesseract lstmtraining is used to train Korean language. The following error has occurred.
lstmtraining \
--model_config  $HOME/work/kor/tuned/kortuned \
--continue_from  $HOME/work/kor/tuned/kor.lstm \
--train_listfile  $HOME/work/kor/config/kor.training_files.txt \
--target_error_rate 0.01 \
--max_iterations 1200

It seems that a compression error occurs in the following complex characters.

How do I resolve this issue?
Do I need to register for Korean unicharset?

I think this happens when the complex characters in your training text are not part of the original Korean Unicharset that the 4.00.00alpha kor.traineddata was trained with.
Do 'replace top layer' training instead of finetune. @abhishekchopde has had good results with it - see https://github.com/tesseract-ocr/tesseract/issues/1009

also see
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#error-messages-from-training

Not reproducable for Korean with latest version
tesseract 4.0.0-beta.1
 leptonica-1.76.0
  libjpeg 8d (libjpeg-turbo 1.3.0) : libpng 1.2.50 : libtiff 4.0.3 : zlib 1.2.8

 Found AVX
 Found SSE

File /tmp/tmp.I5qtDeV6yp/kor/kor.Adobe_Myungjo_Std_Medium.exp0.lstmf page 83 :
Mean rms=0.835%, delta=1.958%, train=4.775%(17.12%), skip ratio=21.053%
Iteration 95: ALIGNED TRUTH : 된 올 , 짤방 찝찝 팝업 80 아팠던 그땐 1.0 고아읍 설정 1 키워드 위치
Iteration 95: BEST OCR TEXT : 된 을 , 짤방 찝찝 팝업 80 아팠던 그땐 1.0 고아읍 설정1 키워드 위치
File /tmp/tmp.I5qtDeV6yp/kor/kor.Arial_Unicode_MS.exp0.lstmf page 36 :
Mean rms=0.833%, delta=1.95%, train=4.76%(17.15%), skip ratio=20.833%
Iteration 96: ALIGNED TRUTH : 키워드 꽝 베어벡 의해 드립니다 그의 밧 절 기사 입찰 0.0
Iteration 96: BEST OCR TEXT : 키워드 꽝 베어벡 의해 드립니다 그의 밧 절 기사 입찰 0.0
File ./trained_plus_chars_kor/kor.Bitstream_CyberCJK.exp0.lstmf page 19 :
Mean rms=0.833%, delta=1.946%, train=4.711%(16.974%), skip ratio=20.619%
Image too small to scale!! (2x48 vs min width of 3)
Line cannot be recognized!!
Image not trainable
Iteration 97: ALIGNED TRUTH : 논의 해당 위해서는 리포트 하악 형 등 조직 웬만한 때 : 대학교
Iteration 97: BEST OCR TEXT : 논의 해당 위해서는 리포트 하악 형 등 조직 웬만한 때 : 대학교
File ./trained_plus_chars_kor/kor.UnBatang.exp0.lstmf page 19 (Perfect):
Mean rms=0.825%, delta=1.926%, train=4.663%(16.8%), skip ratio=21.429%
Iteration 98: ALIGNED TRUTH : 섀도우 2006 색깔 자유 08.08 모델 댄 수 괌섬 깃발 ' 엌 로 기타 평점
Iteration 98: BEST OCR TEXT : 새도우 2006 색깔 자유 08.08 모델 댄 수 괌섬 깃발'얼 로 기타 평점
File /tmp/tmp.I5qtDeV6yp/kor/kor.UnDotum.exp0.lstmf page 19 :
Mean rms=0.83%, delta=1.941%, train=4.685%(16.9%), skip ratio=21.212%
Iteration 99: ALIGNED TRUTH : 제출 솥뚜껑 팔 27 들이 년대 추천 처럼 몹 이 기간 나무 황후 ' 횟수
Iteration 99: BEST OCR TEXT : 제출 솔뚜껑 팔 27 들이 년대 추천 처럼 몹 이 기간 나무 황후' 횟수
File /tmp/tmp.I5qtDeV6yp/kor/kor.Adobe_Myungjo_Std_Medium.exp0.lstmf page 67 :
Mean rms=0.831%, delta=1.933%, train=4.672%(16.931%), skip ratio=21%
2 Percent improvement time=83, best error was 100 @ 0
At iteration 83/100/121, Mean rms=0.831%, delta=1.933%, char train=4.672%, word train=16.931%, skip ratio=21%,
New best char error = 4.672
Transitioned to stage 1
wrote best model:./trained_plus_chars_kor/pluschars4.672_83.checkpoint
wrote checkpoint.

@azmat21 Thank you for the details.
@stweil Can this be added to text2image processing, to mark the control characters as unrenderable? Thanks.

@Shreeshrii  text lines which contains the Uyghur char ، (unicode is \u060c) is show the 'Can't encode transcript' error,   but this char is also in unicharset file ,How do I resolve this issue?

@azmat21 Are you specifying it as RTL while training?

specify it while building the starter traineddata to give to lstm training.

combine_lang_model \
--input_unicharset    $train_output_dir/$Lang.continue.unicharset \
--script_dir $langdata_dir \
--words $langdata_dir/$Lang/$Lang.wordlist \
--numbers $langdata_dir/$Lang/$Lang.numbers \
--puncs $langdata_dir/$Lang/$Lang.punc \
--output_dir $train_output_dir \
--lang_is_rtl  \
--pass_through_recoder  \
--lang $Lang \
--version_str ` cat $train_output_dir/$Lang.new.version`

This error happens with combining acute accent (U+0301).
Well-prepared texts (Slavic, specifically) contain them to disambiguate the meaning.

text2image does the job correctly:

But during training, you get Can't encode transcription followed by Encoding of string failed! As the result, Tesseract is unable to recognize words containing accent.
Does anyone know a solution to make Tesseract work with accents? at least to recognize a “clean” letter underneath and ignore the mark itself.

Sorry to post problem here, but I have post the problem in tesseract-ocr forum, but it disappear, and the forum is inconvenient to read.
I encount this problem when I eval and finetune with traineddata from tessdata_best. It confused me for a few days.
I use tesstrain.sh to generate train and eval files as tutorial. When I execute lstmeval, it report the bug, can't encode transcription, encoding of string failed!
training/lstmeval --model ../tessdata/chi_sim.traineddata   --eval_listfile ~/tessnew/chi_simeval/chi_sim.training_files.txt
note that the chi_sim.traineddata is wget from tessdata_best repository.

When I use combine_tessdata to extract recognition model from traineddata from tessdata_best repository, and then finetune it with train files generated with tesstrain.sh, it also report this bug.
After reading the above discussion, I know it might be the problem with unicharset. However, I don't know how to solve it. Can anyone helps me, it would be better if in details. Thanks.

I get this error message for two text lines while training Fraktur from scratch, see https://github.com/OCR-D/ocrd-train/wiki/GT4HistOCR#encoding-failure. Commit 43b2e9513bfb57722ad00955f5adbb72d0c09430 fixes the byte formatting in the error message, but the encoding problem still needs a fix.

Reproduce the problem using data from
issue-1012.zip:
lstmtraining --traineddata test.traineddata --net_spec '[1,36,0,1 Ct3,3,16 Mp3,3 Lfys48 Lfx96 Lrx96 Lfx256 O1c5]' --learning_rate 20e-4 --train_listfile test.train --eval_listfile test.eval --max_iterations 1

I tried testing with the Fraktur string referenecd by you. I can also reproduce the error.
I added couple of spaces to the groundtruth text.
Encoding of string failed! Failure bytes: cc 81 20 cf b0 cf 87 ce b5 2c 20 e1 bc b8 ce b1 cf b0 cf 87 ce b5 21 20 57 69 65 20 62 6c 69 74 7a 65 6e 20 69 68 72 65 20 67 72 6f c3 9f 65 6e 20 41 75 67 65 6e 21 20 4e 6f 63 68
Can't encode transcription: 'Ἰ ά ϰχε, Ἰαϰχε! Wie blitzen ihre großen Augen! Noch' in language ''

The error in this case is for ́    0x301 (cc 81 ). It might be related to normalization of the strings.
Is it possible that 0x301 is getting matched for 0x301D and 0x301E because of some truncation?

@JisongXie I replied to your message in the forum - https://groups.google.com/forum/#!topic/tesseract-ocr/_NYCB3wZBww

I can successfully training from scratch and eval the output checkpoint. However, when I eval with the official provided traineddata, it fails. I am training with chinese simplified language.
The command is:
training/lstmeval --model ../tessdata/chi_sim.traineddata   --eval_listfile ~/tessnew/chi_simeval/chi_sim.training_files.txt
the model is downloaded from tessdata_best, the eval_listfile is generated from tesstrain.sh as above.

The error is as follow:

Encoding of string failed! Failure bytes: ffffffe6 ffffffbc ffffffa9 ffffffe6 ffffffb6 ffffffa1 20 ffffffe6 ffffffa1 ffffff80 ffffffe9 ffffffaa ffffff9c 54 58 ffffffe5 ffffff90 ffffffaf ffffffe5 ffffff8a ffffffa8 2e ffffffe7 ffffffa7 ffffff8d ffffffe6 ffffffa4 ffffff8d ffffffe5 ffffff9d ffffff91 ffffffe9 ffffff81 ffffff93 30 33 20 ffffffe5 ffffff81 ffffff9a 20 ffffffe9 ffffff92 ffffff88 ffffffe7 ffffff81 ffffffb8 20 ffffffe9 ffffff81 ffffffad ffffffe6 ffffffae ffffff83 20 38 31 3b ffffffe8 ffffff80 ffffff81 ffffffe7 ffffff88 ffffffb7 ffffffe5 ffffff86 ffffff85 ffffffe5 ffffffae ffffffb9
Can't encode transcription: '啊时3全新跑送防伪漩涡 桀骜TX启动.种植坑道03 做 针灸 遭殃 81;老爷内容' in language ''
Encoding of string failed! Failure bytes: ffffffe8 ffffffb8 ffffff9d ffffffe5 ffffff8a ffffffa8 ffffffe6 ffffff80 ffffff81 20 ffffffe5 ffffff9e ffffff84 ffffffe6 ffffff96 ffffffad 31 ffffffe5 ffffff85 ffffffa8 ffffffe9 ffffff9d ffffffa2 34 20 ffffffe8 ffffff84 ffffff82 ffffffe8 ffffff82 ffffffaa 20 5b ffffffe9 ffffff80 ffffff89 ffffffe9 ffffffa1 ffffffb9 20 42 6f 6f 6b 6d 61 72 6b 20 3a ffffffe6 ffffffad ffffffa4 ffffffe5 ffffff9f ffffffba ffffffe7 ffffff9d ffffffa3 ffffffe5 ffffffbe ffffffb7 ffffffe6 ffffffba ffffff90 ffffffe7 ffffffa0 ffffff81 55 6e 69 76 65 72 73 69 74 79 20 ffffffe6 ffffffb3 ffffffb0 ffffffe9 ffffff93 ffffffa2 43 2b 2b

Since training from scratch works ok and error is only during eval of best traineddata, it means that official traineddata was not trained with some of the characters that are there in your training text.
One way to verify this is to use the combine_tessdata command with -u to unpack the files in it and look at the lstm-unicharset.

The error in this case is for ́ 0x301 (cc 81 ). It might be related to normalization of the strings.

I could narrow down the problem to ά: a ground truth text which just contains that character also shows the problem.

@Shreeshrii thanks very much! Yes, I have use combine_tessdata to extract lstm-unicharset file, and use tesstrain.sh to generate unicharset file from training text. The previous unicharset file has less char than my generated unicharset file.
However, it seems difficult to know which char is conflicted. The training text I get is from the official lang repository, I don't know why it can't work with official traineddata.

@stweil Should removal of unprintable control characters in training_text also be done as part of normalize.py? Please see https://github.com/tesseract-ocr/tesseract/issues/1012#issuecomment-392655885

@stweil should the training_text files in langdata and langdata_lstm repos be updated after running them though normalize.py?

@stweil should the training_text files in langdata and langdata_lstm repos be updated after running them though normalize.py?

@Shreeshrii I guess: yes. If normalisation NFC is used, it should be used everywhere. And if your writing system needs graphemes without a predefined code point in Unicode, you need to define these graphemes everywhere. Otherwise they will be ignored (in the best case, but degrade recognition accuracy).

Hello everyone
I am currently fine-tuning new font with tesseract 5 and facing the same problem as you guys doing so can I know whether anyone here has any alternative solution ?
ur suggestion is much appreciated


golint doesn't check xtest files

Consider the following shell session:
dominikh-pc ~ $ GOROOT=~/go golint ~/go/src/net/http/serve_test.go
/home/dominikh/go/src/net/http/serve_test.go:1070:6: don't use underscores in Go names; func testAutomaticHTTP2_ListenAndServe should be testAutomaticHTTP2ListenAndServe
dominikh-pc ~ $ GOROOT=~/go golint net/http | grep serve_test
dominikh-pc 1? ~ $
$ GOROOT=~/go golint net/http | grep _test
/home/dominikh/go/src/net/http/export_test.go:26:2: var ExportHttp2ConfigureTransport should be ExportHTTP2ConfigureTransport
/home/dominikh/go/src/net/http/export_test.go:27:2: var ExportHttp2ConfigureServer should be ExportHTTP2ConfigureServer
/home/dominikh/go/src/net/http/readrequest_test.go:29:24: should drop = nil from declaration of var noTrailer; it is the zero value

When checking the net/http package, there are no linter warnings for the serve_test.go file. When checking that file individually, there are warnings. The third invocation is there to prove that it's looking in the right directory and that it does check tests, so that rules out two possible causes.

The issue is that golint only checks the tests in package http, not in http_test.

Yeah, see golint.go:124:
// TODO(dsymonds): Do foo_test too (pkg.XTestGoFiles)

@dsymonds are you open to switching to go/loader, or would you prefer to keep the current code and fix it there?

Disregard that, switching to go/loader would probably be a rather intrusive change. I'll see about fixing it in the current code.

#153 has been open for ages to do that, but I keep putting it off because it's such a non-trivial change.
External tests are relatively rare. I'm not sure it's worth the effort unless it's a relatively small change. They may also have different concerns about style.

I'm not sure it's worth the effort unless it's a relatively small change

Yeah, I discovered it in my golint fork, where it does matter, and figured I'd report it upstream. If it's not a high priority for you, I'll just fix it in my fork for now (via go/loader, most likely). At a quick glance I don't think that it's a small change one way or another, the xtest handling is a bit intricate if done manually.

I would be happy to finish up #153. We are using the PR in production for a very long time now but I haven't got the time to test it with Go 1.6 since we are still on 1.4.

Still having the problem today.


ListView docs

Closes #2730
✅ Pull Request Checklist:

[ ] Included link to corresponding React Spectrum GitHub Issue.
[ ] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[ ] Filled out test instructions.
[ ] Updated documentation (if it already exists for this component).
[ ] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:
Open ListView page of docs (react-spectrum/ListView.html). New link is in Collections section of sidenav.
🧢 Your Project:
RSP

I think the anatomy diagram is a bit large, and I think only the first part showing the parts of the item are necessary rather than the whole listview. Gonna push an update for this, hope that's ok.