orsopy test suite fails on cp312.

The test suite fails on cp312, as mentioned in #114.
This triggers the fail:
from orsopy.fileio.base import ErrorValue

The cause behind it is the dataclass package changing it's internals, which we rely on. Our usage of dataclasses seems fragile - we monkeypatch the internals (which are marked private) to permit extra kwargs when instantiating classes.
Given this fragility, I'm wondering if it's better to stop using dataclasses and/or define customised __init__ methods for all our Header-derived classes.

Or do something like:
@dataclass
class A:
    a: int
    kwargs: dict=field(default_factory=dict)

    def __post_init__(self, *args):
        for k, v in self.kwargs.items():
            setattr(self, k, v)

If user kwargs are split out this way on class instantiation we'll have to do something similar when serializing, so that all non-orso attrs are stuffed back into a kwargs dict, so that these structures can survive a serialize/deserialize round trip.

For the record: this causes Debian bug https://bugs.debian.org/1058435

That is surprising - who is packaging orsopy for Debian release?  Do we have documentation on that process, who is running it, and what the workflows are?

I am :-)
The workflow is the standard Debian workflow: someone (the packager/maintainer) picks the "upstream" releases, adds what's needed for packaging, patches if needed, ensures it works well with the rest of Debian, then uploads the package to the "unstable" repository. Then the package follows its course, first through "testing", then to the next "stable" release of Debian if it fulfills a few criteria (no critical bugs reported or left open for some time).
The maintainer also acts as a link between Debian users and the upstream authors, transmitting bug reports and fixes across. Which is what I just did :-)

Oh, and thanks for the contributions!  Sorry I forgot to mention that :)

There is pretty extensive documentation on the Debian wiki, for instance starting with https://wiki.debian.org/DebianDevelopment
There's a team of Debian developers who focus on Python-related packages, and they decide collaboratively which version of Python to support. For 3.12, it's been tested outside of Debian repositories (or in the Debian "experimental" repository) for a while, which resulted in a lot of bug reports; when most of these were fixed, Python 3.12 has been injected into Debian proper, in order to give more visibility to the remaining problems. Some time before the actual release of the next Debian stable distribution, they'll consider which Python version gets to be the default, and whether other versions are also provided alongside.
Note that for testing, there are also a bunch of automated testing systems in Debian. Some results are automatically listed on https://tracker.debian.org/pkg/orsopy
Note also that the actual packaging happens on https://salsa.debian.org/python-team/packages/orsopy (you may want to have a look at the debian/patches subdirectory)
Cheers!

refnx is developed as follows.
I regularly release point versions with bug fixes/updates/new features (it's lightweight to make a release). refnx uses compiled code so each version has a build matrix over a range of Python versions.
For a given refnx version the oldest python that's supported (i.e. tested in CI, specified in pyproject.toml, and built) is similar to the python version supported by the most recent version of scipy/numpy, which use SPEC0/NEP29 for which python versions they support. This means the latest version of refnx is specified to only use Python > 3.9.
The most recent Python version that's supported would be a Python for which there is a numpy/scipy/cython version available on PyPI. Sometimes this is a pre-release Python. refnx has no hard dependency on other packages. It does have to install orsopy, but that's pure Python.
It hurts if orsopy does not work with cp312, because many users will use the most recent Python version. Indeed, cp312 is the default Python installed by conda.
It's good practice for many projects to have a CI entry that runs against bleeding edge upstream dependencies, both e.g. numpy, Python, so that one gets good notice of when a major release is likely to break something.

Resolved by #120


feat: support for F56 56-bit floating point numbers

Overview
This implementation allows us to store floats with greater precision.
The existing implementation stores slvm::Value::Float as a wrapped f32 and ignores the other 3 available bytes.
Changes

builtins/src/types/numbers.rs primarily just has the new test cases (100 of them!)
vm/src/value.rs has the actual F56 implementation and some changes from the previous implementation using F32Wrap
vm/src/vm/macros.rs might require some additional attention. The get_float macro here is now set to operate on f64 types. But a similar get_float macro in value.rs is set to f32.  These implications should be explored.

This looks great, thanks. I want to play with it some with an eye toward making sure it does not tank math performance (I am not expecting it to) before merge. For reference this is a dumb benchmarking script I use and it does stuff with FP so may actually be valid in this case:
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

You can load it and then I usually do (eval-pol 500000 .2) - make sure to use a release build. It should take a few seconds to run, it does a lot of useless work and produces 1250000. Having an impact on performance is not a problem I just don't want a huge impact (which can probably be fixed if it is there). We also need to start getting proper benchmarks, etc setup but this stupid script has been useful for letting me know when something in the bytecode loop trashed performance, etc.

Steve this script fails to compile because the x on this line is undefined
           (set! su (+ pol.~j (* su x))))

This looks great, thanks. I want to play with it some with an eye toward making sure it does not tank math performance (I am not expecting it to) before merge. For reference this is a dumb benchmarking script I use and it does stuff with FP so may actually be valid in this case:
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

You can load it and then I usually do (eval-pol 500000 .2) - make sure to use a release build. It should take a few seconds to run, it does a lot of useless work and produces 1250000. Having an impact on performance is not a problem I just don't want a huge impact (which can probably be fixed if it is there). We also need to start getting proper benchmarks, etc setup but this stupid script has been useful for letting me know when something in the bytecode loop trashed performance, etc.

@sstanfield this script fails to compile because the x on this line is undefined
           (set! su (+ pol.~j (* su x))))

also if we're benchmarking it i'll probably remove the prn.

@gpwclark Well that is just embarrassing.  I did load this and test it to avoid this issue but that is an obvious error and there are more than one versions of this script so I probably loaded the wrong one.  I will sort it and commit a version of this to the repo so we can stay in sync.  As far as the prn goes it outside all the loops and I like to print the result because sometimes I break stuff and this becomes a redflag (although there is a unit test based around this benchmark but I think it uses raw byte code and a lot less loops so not exactly the same).  There is also an example that does the same thing but using raw byte code, it is good for seeing just how unoptimized the computer is (I think it is currently 2-3 times faster)...  This all pretty weak benchmarking but I have found it useful for making sure I don't accidentally trash performance when doing something new (since being faster was one of the reasons slim even exists...)

This looks great, thanks. I want to play with it some with an eye toward making sure it does not tank math performance (I am not expecting it to) before merge. For reference this is a dumb benchmarking script I use and it does stuff with FP so may actually be valid in this case:
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

You can load it and then I usually do (eval-pol 500000 .2) - make sure to use a release build. It should take a few seconds to run, it does a lot of useless work and produces 1250000. Having an impact on performance is not a problem I just don't want a huge impact (which can probably be fixed if it is there). We also need to start getting proper benchmarks, etc setup but this stupid script has been useful for letting me know when something in the bytecode loop trashed performance, etc.

@sstanfield this script fails to compile because the x on this line is undefined
           (set! su (+ pol.~j (* su x))))

also if we're benchmarking it i'll probably remove the prn.

@gpwclark Well that is just embarrassing. I did load this and test it to avoid this issue but that is an obvious error and there are more than one versions of this script so I probably loaded the wrong one. I will sort it and commit a version of this to the repo so we can stay in sync. As far as the prn goes it outside all the loops and I like to print the result because sometimes I break stuff and this becomes a redflag (although there is a unit test based around this benchmark but I think it uses raw byte code and a lot less loops so not exactly the same). There is also an example that does the same thing but using raw byte code, it is good for seeing just how unoptimized the computer is (I think it is currently 2-3 times faster)... This all pretty weak benchmarking but I have found it useful for making sure I don't accidentally trash performance when doing something new (since being faster was one of the reasons slim even exists...)

@gpwclark So I truncated that lisp snippet, x is a parameter.  The correct snippet is:
(defn eval-pol (n x)
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

That will fix it by defining the function eval-pol...

This looks great, thanks. I want to play with it some with an eye toward making sure it does not tank math performance (I am not expecting it to) before merge. For reference this is a dumb benchmarking script I use and it does stuff with FP so may actually be valid in this case:
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

You can load it and then I usually do (eval-pol 500000 .2) - make sure to use a release build. It should take a few seconds to run, it does a lot of useless work and produces 1250000. Having an impact on performance is not a problem I just don't want a huge impact (which can probably be fixed if it is there). We also need to start getting proper benchmarks, etc setup but this stupid script has been useful for letting me know when something in the bytecode loop trashed performance, etc.

@sstanfield this script fails to compile because the x on this line is undefined
           (set! su (+ pol.~j (* su x))))

also if we're benchmarking it i'll probably remove the prn.

@gpwclark Well that is just embarrassing. I did load this and test it to avoid this issue but that is an obvious error and there are more than one versions of this script so I probably loaded the wrong one. I will sort it and commit a version of this to the repo so we can stay in sync. As far as the prn goes it outside all the loops and I like to print the result because sometimes I break stuff and this becomes a redflag (although there is a unit test based around this benchmark but I think it uses raw byte code and a lot less loops so not exactly the same). There is also an example that does the same thing but using raw byte code, it is good for seeing just how unoptimized the computer is (I think it is currently 2-3 times faster)... This all pretty weak benchmarking but I have found it useful for making sure I don't accidentally trash performance when doing something new (since being faster was one of the reasons slim even exists...)

@gpwclark So I truncated that lisp snippet, x is a parameter. The correct snippet is:
(defn eval-pol (n x)
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

That will fix it by defining the function eval-pol...

hmm nice. I'm going to try and use this with bencher. but that would move the iteration out of lisp.

This looks great, thanks. I want to play with it some with an eye toward making sure it does not tank math performance (I am not expecting it to) before merge. For reference this is a dumb benchmarking script I use and it does stuff with FP so may actually be valid in this case:
  (let (su 0.0
        mu 10.0
        pu 0.0
        pol (make-vec 100 0.0))
    (dotimes-i i n
        (set! su 0.0)
        (dotimes-i j 100
             (set! mu (/ (+ mu 2.0) 2.0))
             (set! pol.~j mu))
        (dotimes-i j 100
          (set! su (+ pol.~j (* su x))))
            (set! pu (+ pu su)))
    (prn pu)))

You can load it and then I usually do (eval-pol 500000 .2) - make sure to use a release build. It should take a few seconds to run, it does a lot of useless work and produces 1250000. Having an impact on performance is not a problem I just don't want a huge impact (which can probably be fixed if it is there). We also need to start getting proper benchmarks, etc setup but this stupid script has been useful for letting me know when something in the bytecode loop trashed performance, etc.

@sstanfield this script fails to compile because the x on this line is undefined
           (set! su (+ pol.~j (* su x))))

also if we're benchmarking it i'll probably remove the prn.

ok I merged the bench marking stuff. We now have before and after benchmarks in bencher.dev with the new float benchmarks. Here is the before:
https://github.com/sl-sh-dev/sl-sh/pull/127
and I opened a sample PR to trigger the GH action to run with the new code. I took steven's master branch, rebased it on the new master with bencher feature, and updated the float code in the benchmark for f56 as a PoC to measure impact.  We should merge your PR (I'll close the one I opened) but I had to open one to trigger the GH action to run with the proper credentials to submit the data to bencher.dev. Anyway, I say merge! Also can you see these:
https://bencher.dev/perf/sl-sh?key=true&reports_per_page=4&branches_per_page=8&testbeds_per_page=8&benchmarks_per_page=8&reports_page=1&branches_page=1&testbeds_page=1&benchmarks_page=1&report=42268bc0-ffe3-42a3-9a64-a430b25e7b92&branches=98180d27-2dbf-4981-90ca-874221ddf395&testbeds=2e20891d-0b52-4c2d-b14e-7937d1311d1a&benchmarks=17622464-e11b-4753-85a2-9d7e0c3d14ce%2C9722a538-12ee-4a63-b438-5cb6c62010a0%2Cc98a610b-f03a-491a-8afd-fffb76e64e9e&measures=cb6dca16-7098-4385-8bee-be93c61aea7a&start_time=1706505783000&end_time=1709097903000&clear=true


Analyzer: I need the user visible import URL for a type

Problem
Internally we have a dependency injection package that uses code generation.
Basically it looks at the following pattern:
import 'dart:io';

import 'package:some_di/some_di.dart';

import 'app.g.dart' as generated;

@module
class HttpModule {
  @provide
  HttpClient provideHttpClient() => new HttpClient();
}

abstract class AppInjector {
  factory AppInjector() = generated.$AppInjector;
}

And generates some boilerplate code like so:
import 'dart:_http';
import 'app.dart';

class $AppInjector implements AppInjector {
  HttpClient provideHttpClient() => new HttpClient();
}

See the problem? It has "resolved" HttpClient to belonging to dart:_http, which is not a user-importable library. This is because when we ask for the library URL of an Element, we get back the absolute location - which is good for canonicalization, but bad for generating valid code, in this case.
What is the best way to get back dart:io, instead, using the analyzer API?

@matanlurey I don't believe that analyzer currently has an API for that. The analysis server has the same problem when trying to import as part of a quick fix (see https://github.com/dart-lang/sdk/blob/master/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart#L1318 for one example of from server).
@jcollins-g I believe that DartDoc has solved this problem. Any chance that we could move that API into analyzer for others to use?

TL;DR:  Yes, dartdoc has solved this problem, and no, it is unlikely we could move that API quickly.
@bwilkerson @matanlurey Yes, this is the essence of dartdoc-style canonicalization, which is a different animal from canonicalization as the analyzer thinks of it.  There are two versions of this problem: the easy version, and the hard version.
The easy version of the problem Dartdoc has always had a solution for, with varying degrees of accuracy.  It goes like this: If the symbol is named in such a way that it is private or it is in a private context (e.g. the private 'dart:_http' library or under 'lib/src'), that's not the Official Version and so ignore it.  If a public context exists for it, that's the official version (and just accept that there might be more than one).   For the SDK, that's reasonably easy to determine with SdkLibrary.isDocumented.  For other packages we can detect 'lib/src' subdirectories.  Underscore prefixes help with the rest.  While dartdoc's object model (see below) makes this somewhat simpler to code there, it's probably possible to hack this in to analyzer.  It just won't be a port.
The hard version is what I am usually talking about with dartdoc.  That is, to the easy version, add an import-export graph and inheritance tree traversal to determine which one to use when there is more than a single public candidate, falling back to a scoring algorithm and finally, hinting if the graph is ambiguous.  This is necessary for packages like Flutter and Angular which have public libraries reexporting each others' content, but still want to have a concept of one of them "owning" the object.
The hard version is more dependent on Dartdoc's object model, and has been a roughly year-long process to get right.  Briefly, dartdoc keeps a ModelElement for every single perspective a symbol is visible from (a unique Class object for every Library it is reexported in, a unique Method object for every class in which it is inherited (and therefore even more since classes are expanded as above, and so on).  It does this so that when documenting, we can note that from class Foo, hashCode is inherited from Object.  We also calculate whether the symbol is private based on the particular perspective represented by the element.  Canonicalization is therefore implemented by having individual ModelElements calculate which other ModelElement is canonical for the analyzer element they share in common.  Dartdoc essentially undoes analyzer's canonicalization and then builds an entirely new one.
Without that object model and the code used to build it, I'm not sure that the canonicalization API would be possible to port over.  It'd more likely be a rewrite and I haven't thought about it enough to know how to do it.  I'd like to evolve dartdoc's design to be more amenable to moving this over, but that's also not a small amount of work.

I don't need this immediately, as I have workarounds.
This is something good to keep in mind for cleanup work after the CFE, however. I'll update you if this ends up needing a higher priority, for now it's ~P2.


Authentication failed to github.com

Running full command:
python src/main.py -k KEY -o docs/README_X.md -u GITHUB_URL and receiving the following error after prompted for username/password:
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'GITHUB_URL'

KEY and GITHUB_URL were of course fully written out.
Thanks for what looks like an awesome project!

This should be corrected as many changes have been made to the codebase.
Please let me know if you're still having issues. Thanks!


Events ordering

Such a cool app! Great work! 👏 👏 👏
However, wouldn't it be better to arrange the list according to the date of event, instead of the order I put?
ex) if I put events for DEC 5, DEC 20, DEC 13, it would be better to see then arranged as DEC 5, DEC 13, DEC 20 on the list?

Great thought, I will be working on that.


fix: build branch to main

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Add feature spec to test the progress bar

This test makes sure we can see the progress bar and that it completes.
The side effects of adding this feature test (and other JS tests in the future)
is that:

we cannot use :rack_test, therefore we need to rely on a slower webkit
driver to run those particular javascript tests;
we cannot enable RSpec fixtures, and have to use database_cleaner instead (see this);
we have to use a truncation strategy, which means we then need to create our
User record before each example (or re-create it after the js test)

On the plus side, we can select the Capybara javascript driver depending on the
type of tests, which means most of the tests still use :rack_test.
Trello: https://trello.com/c/qoimvKOL/167-add-a-basic-poltergeist-test-for-the-progress-bar-in-content-tagger

Nice one 👍 .


⚠ Bofrost.fr has degraded performance

In 2c310b3, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1420 ms

Resolved: Bofrost.fr performance has improved in 945e966 after 13 minutes.


ci: rename job

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@615b7b5). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #3   +/-   ##
=======================================
  Coverage        ?   68.15%
=======================================
  Files           ?        6
  Lines           ?      826
  Branches        ?        0
=======================================
  Hits            ?      563
  Misses          ?      191
  Partials        ?       72


It's now possible to retrieve the json targz from nlohmann directly

No workaround needed anymore. We directly receive the small footprint tar.gz file.

Codecov Report

Merging #61 (c8e00cf) into master (5f27ef3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #61   +/-   ##
=======================================
  Coverage   54.92%   54.92%
=======================================
  Files           2        2
  Lines         406      406
  Branches      203      203
=======================================
  Hits          223      223
  Misses          7        7
  Partials      176      176

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 5f27ef3...c8e00cf. Read the comment docs.


torch.cuda.is_available() changes to FALSE at the second trial

Describe the issue:
May like issue #4853
torch.cuda.is_available() is FALSE at the second trial but TRUE at the first trial (by print). Also, it is TRUE when running the main.py.
May be something wrong in my config.yml?
My project works well on old-version nni without keyword use active GPU. Is this the problem comes from?
Environment:

NNI version: 2.8.0
Training service (local|remote|pai|aml|etc):local
Client OS:ubuntu18.04
Server OS (for remote mode only):
Python version: 3.8.0
PyTorch/TensorFlow version: 1.12
Is conda/virtualenv/venv used?: yes
Is running in Docker?: no

Configuration:

Experiment config (remember to remove secrets!):experimentName: ***
searchSpaceFile: search_space.json
trialCommand: python3 main.py
trialCodeDirectory: .
trialGpuNumber: 1
trialConcurrency: 1
maxExperimentDuration: 2h
maxTrialNumber: 100
tuner:
name: GridSearch
trainingService:
platform: local
useActiveGpu: True
maxTrialNumberPerGpu: 1
Search space:{
"split": {"_type": "choice", "_value": [4, 6]},
"gen": {"_type": "choice", "_value": [24, 48]},
"hidden_dim": {"_type": "choice", "_value": [32, 64]}
}

Log message:

nnimanager.log:[2022-08-04 17:12:50] INFO (main) Start NNI manager
[2022-08-04 17:12:50] INFO (NNIDataStore) Datastore initialization done
[2022-08-04 17:12:50] INFO (RestServer) Starting REST server at port 10089, URL prefix: "/"
[2022-08-04 17:12:51] WARNING (NNITensorboardManager) Tensorboard may not installed, if you want to use tensorboard, please check if tensorboard installed.
[2022-08-04 17:12:51] INFO (RestServer) REST server started.
[2022-08-04 17:12:51] INFO (NNIManager) Starting experiment: uenxijm9
[2022-08-04 17:12:51] INFO (NNIManager) Setup training service...
[2022-08-04 17:12:51] INFO (LocalTrainingService) Construct local machine training service.
[2022-08-04 17:12:51] INFO (NNIManager) Setup tuner...
[2022-08-04 17:12:51] INFO (NNIManager) Change NNIManager status from: INITIALIZED to: RUNNING
[2022-08-04 17:12:52] INFO (NNIManager) Add event listeners
[2022-08-04 17:12:52] INFO (LocalTrainingService) Run local machine training service.
[2022-08-04 17:12:52] WARNING (GPUScheduler) gpu_metrics file does not exist!
[2022-08-04 17:12:52] INFO (NNIManager) NNIManager received command from dispatcher: ID,
[2022-08-04 17:12:52] INFO (NNIManager) NNIManager received command from dispatcher: TR, {"parameter_id": 0, "parameter_source": "algorithm", "parameters": {"split": 4, "gen_lookback": 24, "hidden_dim": 32}, "parameter_index": 0}
[2022-08-04 17:12:57] INFO (NNIManager) submitTrialJob: form: {
sequenceId: 0,
hyperParameters: {
value: '{"parameter_id": 0, "parameter_source": "algorithm", "parameters": {"split": 4, "gen_lookback": 24, "hidden_dim": 32}, "parameter_index": 0}',
index: 0
},
placementConstraint: { type: 'None', gpus: [] }
}
[2022-08-04 17:13:02] INFO (NNIManager) Trial job TCGyT status changed from WAITING to RUNNING
[2022-08-04 17:13:16] ERROR (tuner_command_channel.WebSocketChannel) Error: Error: tuner_command_channel: Tuner closed connection
at WebSocket. (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/core/tuner_command_channel/websocket_channel.js:41:49)
at WebSocket.emit (node:events:538:35)
at WebSocket.emitClose (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/node_modules/express-ws/node_modules/ws/lib/websocket.js:246:10)
at Socket.socketOnClose (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/node_modules/express-ws/node_modules/ws/lib/websocket.js:1127:15)
at Socket.emit (node:events:526:28)
at TCP. (node:net:687:12)
[2022-08-04 17:13:16] ERROR (NNIManager) Dispatcher error: tuner_command_channel: Tuner closed connection
[2022-08-04 17:13:16] ERROR (NNIManager) Error: Dispatcher stream error, tuner may have crashed.
at EventEmitter. (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/core/nnimanager.js:647:32)
at EventEmitter.emit (node:events:526:28)
at WebSocketChannelImpl.handleError (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/core/tuner_command_channel/websocket_channel.js:107:22)
at WebSocket. (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/core/tuner_command_channel/websocket_channel.js:41:37)
at WebSocket.emit (node:events:538:35)
at WebSocket.emitClose (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/node_modules/express-ws/node_modules/ws/lib/websocket.js:246:10)
at Socket.socketOnClose (/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni_node/node_modules/express-ws/node_modules/ws/lib/websocket.js:1127:15)
at Socket.emit (node:events:526:28)
at TCP. (node:net:687:12)
[2022-08-04 17:13:16] INFO (NNIManager) Change NNIManager status from: RUNNING to: ERROR

dispatcher.log:[2022-08-04 17:12:52] INFO (nni.tuner.gridsearch/MainThread) Ignored optimize_mode "minimize"
[2022-08-04 17:12:52] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher started
[2022-08-04 17:12:52] INFO (nni.tuner.gridsearch/Thread-1) Grid initialized, size: (3×6×3) = 54
[2022-08-04 17:13:14] ERROR (nni.runtime.msg_dispatcher_base/Thread-2) Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
Traceback (most recent call last):
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni/runtime/msg_dispatcher_base.py", line 97, in command_queue_worker
self.process_command(command, data)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni/runtime/msg_dispatcher_base.py", line 143, in process_command
command_handlerscommand
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni/runtime/msg_dispatcher.py", line 136, in handle_report_metric_data
data['value'] = load(data['value'])
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni/common/serializer.py", line 443, in load
return json_tricks.loads(string, obj_pairs_hooks=hooks, **json_tricks_kwargs)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/json_tricks/nonp.py", line 236, in loads
return json_loads(string, object_pairs_hook=hook, **jsonkwargs)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/json/init.py", line 370, in loads
return cls(**kw).decode(s)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/json/decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/json_tricks/decoders.py", line 44, in call
map = hook(map, properties=self.properties)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/json_tricks/utils.py", line 66, in wrapper
return encoder(*args, **{k: v for k, v in kwargs.items() if k in names})
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni/common/serializer.py", line 876, in _json_tricks_any_object_decode
return _wrapped_cloudpickle_loads(b)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/nni/common/serializer.py", line 882, in _wrapped_cloudpickle_loads
return cloudpickle.loads(b)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/storage.py", line 218, in _load_from_bytes
return torch.load(io.BytesIO(b))
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/serialization.py", line 713, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/serialization.py", line 930, in _legacy_load
result = unpickler.load()
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/serialization.py", line 876, in persistent_load
wrap_storage=restore_location(obj, location),
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/serialization.py", line 175, in default_restore_location
result = fn(storage, location)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/serialization.py", line 152, in _cuda_deserialize
device = validate_cuda_device(location)
File "/public/gsb/anaconda3/envs/pt1.12/lib/python3.8/site-packages/torch/serialization.py", line 136, in validate_cuda_device
raise RuntimeError('Attempting to deserialize object on a CUDA '
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
[2022-08-04 17:13:14] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher exiting...
[2022-08-04 17:13:16] INFO (nni.runtime.msg_dispatcher_base/MainThread) Dispatcher terminiated

nnictl stdout and stderr:

How to reproduce it?: nnictl create --config config.yml -p 10090

Please print os.environ['CUDA_VISIBLE_DEVICES'] to log and tell us its value.

Thank you for reply!
I can see os.environ['CUDA_VISIBLE_DEVICES'] equals to 0 in stdout of the first trial, no matter before or after model.eval(). I set the keyword at the start of my main.py. Trail 2 did't start so there is no log for it.

I notice placementConstraint: { type: 'None', gpus: [] } in the log, is that ok?
BTW, downgrade nni to 2.2 and it can run continuously with TPE tuner.

you can use
exp_config.trial_gpu_number = 1
exp_config.training_service.use_active_gpu = True

to set gpu, and then nni will automatic chose gpu.
Is there any code to config gpu manually in your main.py?

hi @rockcor Could you follow @Louis-J suggestion and provide some other information? Thanks!

I meet the same error. And I try the setting as @Louis-J  metioned but it couldn't solve the problem.

@AngusHuang17
pip install nni==2.5 may solve the problem

you can use
exp_config.trial_gpu_number = 1
exp_config.training_service.use_active_gpu = True

to set gpu, and then nni will automatic chose gpu.
Is there any code to config gpu manually in your main.py?

you mean run with nni python api? why command line tool fails

GPU scheduler is somehow broken currently. We will solve it in 3.0 release.

GPU scheduler is somehow broken currently. We will solve it in 3.0 release.
got it. thanks for your contribution


allow "uv run" to work without a project

It'd be nice if this flow worked simply to avoid needing to activate a virtualenv - regardless of whether I'm using a full uv project or not.
$ uv venv
$ uv pip install -e .
$ uv run python

However as of 0.4.28 I get the following error:
$ uv run python
error: No `project` table found in: `/Users/michael/work/oss/webob/pyproject.toml`

Obviously in this case I'm not asking uv to do anything except use the correct path as if I was activating the virtualenv - equivalent to .venv/bin/activate; python.

Yeah thanks for pointing that out and I confirmed it works. Having to add an extra arg there on every command is a deal breaker right - uv run is the primary command I’m using all the time during dev. I’d instead activate the env or use .venv/bin/python … (my current flow). I guess this issue becomes a feature request to drop the flag and make it the default fallback behavior when no project can be found.

Things like build-system, black config, isort config, and tool.ruff config.

What build system are you using without a [project] table 👀

setuptools doesn’t require it - it can pull all the data from setup.py and setup.cfg like it has for decades. :-) I guess I should switch it up to use project but it’s not required by the build backend PEP.

Having to add an extra arg there on every command is a deal breaker right - uv run is the primary command I’m using all the time during dev

Maybe as an alternative workaround, setup an shell alias for uv run to be uv run --no-project?

Yeah I can work around it, but this ticket is here incase y'all want a cleaner story for the larger community for "older" projects.
In pyramid we have for years recommended for people to do the following as a simple starter sequence:
python3 -m venv env
env/bin/pip install -e .
env/bin/pshell site.ini

And I thought it'd be cool to at least have a "drop in replacement" story for uv where we'd recommend the following:
uv venv
uv pip install -e .
uv run pshell site.ini

As of today we need to add --no-project to every uv run command and that's no fun. :-) Personally I think the error that is raised about "no project table" is not worth it compared to the logical fallback to just run the command in the virtualenv even if there's no project.
Also mainly for my sanity and to clarify for anyone else I went back to just check and this issue occurs whether or not you have a pyproject.toml. It's just complaining about the missing [project] section therein.

Fwiw I think this should probably work but doesn't
❯ cat pyproject.toml
[tool.uv]
managed = false

❯ uv run python
error: No `project` table found in: `/Users/zb/workspace/uv/example/pyproject.toml`

👍 on this, I use uv primarily as a manager to venv's per project, but im not necessarily making changes to the projects im dropping into that would allow me to modify pyproject.toml. Being able to set an env var that silences no-project, but still works when a project dir i go to actually DOES have project settings, would be ideal.

If a directory contains nothing but a script, with no pyproject.toml or .venv in sight, uv run script.py works.
If there's a .venv but no pyproject.toml, it also works.
Is that the intended behaviour? If so it seems strange to require a [project] table when pyproject.toml is present, but not otherwise.

The presence of a pyproject.toml is what we use to determine if you're working... in a project :) I think it does make some sense, though I can understand why you would want it to work differently. I'll be exploring some approaches to resolve this.

What build system are you using without a [project] table 👀

I a example for this, a python backend web server doesn't need any build-system. When deploying I just need to copy everything to docker and install deps from requirements.txt, no [project] involved.
Maybe we can add a options or env to make --no-project enabled by default.
For example, UV_RUN_NO_PROJECT=1 uv run ...  ( even uv doesn't load dotenv for itself direnv can still work in this case ) or tool.uv.no-project = true in config file

I just find that we have a option tool.uv.package, maybe we can use this option when tool.uv.package = false?
https://github.com/astral-sh/uv/blob/8a27d4d340f7dbdaeb144d4b8f80f3b27cc29ec0/docs/concepts/projects/config.md?plain=1#L147-L148

For real world examples, I've been hitting this in typeshed. Not sure if I wanna try adding a dummy project config.


Performance concern

Hi Chris,
First of all, I think this is a great project. I like the way your visualized the data.
About 15 years ago I wrote my own "du" type program (in C) which was also multithreaded and custom for our studio. However, even multi-threaded with a large enough filesystem (~100TB with millions files in thousands of directories) the code would take more than 24 hours to run.
In production, it's not acceptable to have data/analytics that is old. You cannot make proper decisions if your disk usage data not current.
 It really doesn't matter what the capacity is, it's the number of files (and number of directories) that will determine how long your code takes to run (and a little bit the speed of the vendor's inode lookups). Even on a 10GB filesystem you can create (1KB sized) files in subdirectories and let your code walk it. Please post some benchmarks as those are critical in production environments.
Luckily the vendors are catching on (Qumulo) and the requirement for filesystem crawls should soon be a thing of the past. :)

Hi Ronald, thanks for your feedback and I agree with you about the importance of having the data analytics current.
The command line options for Diskover should help speed up the crawl times such as setting minimum file size and modified time. Also excluding certain files/directories will help.
You could also speed up the crawl by running multiple Diskover processes and bulk loading into different diskover- indices in Elasticsearch. I haven't tested this but in theory that should help to pull in data faster for analysis. Diskover bulk loads data into Elasticsearch while the crawl is running so you can view in Kibana during the scan.
Here are some benchmarks running on my macbook pro, this includes time to crawl my local filesystem and index in Elasticsearch. The files were all 1KB.
[2017-04-23 10:02:58] *** Processed Directories: 10001
[2017-04-23 10:02:58] *** Processed Files: 10000
[2017-04-23 10:02:58] *** Elapsed time: 16.2423961163

[2017-04-23 10:46:24] *** Processed Directories: 100001
[2017-04-23 10:46:24] *** Processed Files: 100000
[2017-04-23 10:46:24] *** Elapsed time:<PHONE_NUMBER>

I've added these benchmarks and crawl tips to the readme.

Just to add some stats on a large project directory crawl running on bare metal with 20 threads:
v1.0.10
[2017-05-16 02:52:40] [status] Connecting to Elasticsearch
[2017-05-16 02:52:40] [info] Checking for ES index: diskover-2017.05.16
[2017-05-16 02:52:40] [info] Creating ES index
Crawling: [100%]
8768555/8768555
[2017-05-16 10:36:00] [status] Finished crawling
[2017-05-16 10:36:00] [info] Directories Crawled: 8768555
[2017-05-16 10:36:00] [info] Files Indexed: 1542891
[2017-05-16 10:36:00] [info] Elapsed time: 27800.2159569
Stats for this project from our Isilon:
type: directory
AppliesTo: DEFAULT
Path: /ifs/<withheld>
Snap: No
Thresholds
Hard: 90.00T
Soft: -
Adv: -
Grace: -
Usage
Files: 98967237
With Overhead: 80.90T
W/O Overhead: 59.70T
We called the following for the scan:
diskover.py -d /$MOUNT -m 1 -s 1 -t 20 -i diskover-$INDEX

v1.1.0 uses the faster python module os.scandir instead of os.listdir, would be interested to see your crawl times after using this new version.

Yup, I'm rerunning now... I'll update with results once it completes.

v1.1.1 which I released today has some bug fixes for file/directory exclusions if you were doing a lot of those.

Also, Python3 is now supported by diskover which includes os.scandir since v3.5. If you are using Python2 you will need to pip install scandir.

Results with 1.1.0 - same dataset as before though there is some variance in this set as it's semi-active.
./diskover.py -d $MOUNT -m 1 -s 1 -t 20 -i diskover-$INDEX
2017-06-23 10:41:16,585 [INFO][diskover] Finished crawling 2017-06-23 10:41:16,585 [INFO][diskover] Directories Crawled: 8510793 2017-06-23 10:41:16,585 [INFO][diskover] Files Indexed: 1563815 2017-06-23 10:41:16,585 [INFO][diskover] Elapsed time:<PHONE_NUMBER>21
Unsure why I'm seeing a performance regression here - Possible that the underpinning storage cluster was under duress when the scan was running.
I'll re run a couple of times to make sure there wasn't something else clouding these results.

wow, thats a difference of close to 70 ms per file. Yes, if you can, please re-run again using v1.1.1 (latest). Thanks!

still having crawl speed issues?

Jason, are you using the new v1.5.0-rc versions? Would be curious to hear how your crawl times are these days.


no way to unlink account/domain from ldap

(localcloud) SBCM5> > link domaintoldap domainid=5a155ee3-70dd-4549-9d29-4c926530a8f0 type=group  ldapdomain=cn=admins,ou=groups,dc=acs,dc=echt,dc=net accounttype=2
🙈 Error: (HTTP 530, error code 9999) Entity already exists:

User is able to link domain/account to LDAP but there's no way to remove this link if not deleting it in DB.

cc @DaanHoogland any remarks?

@rhtyd @borisstoyanov I remember working on a similar issue for marcus or ilya. Can you revalidate @borisstoyanov can you check on latest and add some details?

@borisstoyanov, the idea is that you would delete an account if you no longer want the link. What is the idea of unlinking? what would the value of the account and the users in it if there is no ldap linked?

@DaanHoogland @borisstoyanov any update on this?

no update, what is the use of a unlinked domain or account? it would be filled with autoimported/autosynced users from ldap. Why would you want to keep those?

In my opinion unlinking a domain or account should remove access to CloudStack from LDAP accounts, what about removing those accounts' information from DB?

isn't removing the account/domain good enough? what is the added value of unlink?

if the account was created before it was linked then it should remain without the possibility to authenticate to LDAP server but native only auth.

You are asking for a new feature @borisstoyanov , I can understand what you want but it was not designed to be unlinked. I would even not be sure how it would work if you'd like an existing account to ldap.
Come to think of it these are two distinct features;

linkage live cycle for domains
linkage life cycle for accounts
these are not tightly coupled.


[NTR] TUBB3-related tubulinopathy

Preferred term label:
TUBB3-related tubulinopathy
Synonyms
Definition (free text, please give PubMed ID, if applicable, in format PMID:#######)
A tubulinopathy syndrome associated with malformations of cortical development, axon guidance defects, white matter abnormalities, and/or congenital fibrosis of the extraocular muscles (CFEOM), due to de novo or dominantly inherited variants with high penetrance. Individuals may present with variable combinations of malformations of cortical development, dysplasia of the basal ganglia, brainstem, and/or cerebellum, CFEOM, additional cranial nerve involvement, Kallmann syndrome, cyclic vomiting, peripheral neuropathy, and/or contractures. Developmental delays, intellectual disability, ocular motor apraxia, and mirror movements are also frequent features.
Parent term (use OLS, or your favorite ontology browser)
Tubulinopathies
*Will be submitting a separate request for this parent term
Children terms (if applicable) Should any existing terms that should be moved underneath this new proposed term?
OMIM disease terms
Fibrosis of extraocular muscles, congenital 3A
Cortical dysplasia, complex, with other brain malformations 1
Your nano-attribution (ORCID)
If you don't have an ORCID, you can sign up for one here
Intellectual Disability and Autism GCEP
[https://clinicalgenome.org/affiliation/40006/
@ErinRiggs

Children terms (if applicable) Should any existing terms that should be moved underneath this new proposed term?
OMIM disease terms
Fibrosis of extraocular muscles, congenital 3A
Cortical dysplasia, complex, with other brain malformations 1

@icordovaG according to OMIM, Cortical dysplasia, complex, with other brain malformations 1 has a variation in the APC2 gene. There is no mention of TUBB3.

Parent term (use OLS, or your favorite ontology browser)
Tubulinopathies
*Will be submitting a separate request for this parent term

I didn't see another ticket for this but I added this term as MONDO:0100153 tubulinopathy

HI Nicole, could you let me know what definition you put under the parent term tubulinopathy? Or was it just left blank because it wasn't specified?
Thanks!

this is the definition:
A nervous system disorder characterized by complex cortical malformations including in most cases dysmorphic basal ganglia in which the cause of the disease is a variation in one or more of the tubulin genes.


Update Marker Publisher and Visualization for REP Compliance

Description
This pull request modifies the marker publisher and marker visualization components to ensure compliance with the requirements of the REP. The changes include:

Refactoring the marker publisher to align with the REP specifications.
Adjusting marker visualization logic for better REP adherence.

Changes

Updated marker publisher for REP compliance.
Refined marker visualization logic.
Updated msgs to comply with mocap_interfaces.

Testing

Verified the changes in a real optitrack environment.

LGTM
Nice work, @aaggj . Merging 🚀


win11 22624.1546右键会出现卡死，然后闪退

Description
win11 22624.1546右键会出现卡死，然后闪退
Steps To Reproduce
访问任何盘，右键文件或者文件夹，就会出现卡死，过一会就会闪退
Requirements

eg. Fix crash that occurs when...
eg. Correct action happens when clicking...

Files Version
<IP_ADDRESS>
Windows Version
10.22624.1546
Log file
debug.log

Can you see if this is an issue in <IP_ADDRESS> https://files.community/download (Select preview) and post the updated log if it happens

@tangyajun007 thank you for reporting this issue, does this issue only occur when right clicking on certain file types?

This may be fixed by #12089.

@tangyajun007 this appears to resolved in v2.4.66, but please let us know if it's still occurring after the update.


Tapo H100 hub wont connect after update 3.1.1

Hello,
Since 3.1.1 update my tapo H100 is not working and impossible to reconnect to it
"authentication issue"
No problem when a reload a 3.0.0 backup, problem is only since 3.1.1

I have a working H100 integration with 3.1.1. Have you tried to reload the config entry?

Yes of course,, the result is the same "authentication issue"

Hello, I did try that too and it says "authentication issue" too. I deleted it. And added it again and I have "failed to connect" when I entered email and password.

Stopped working for me as well. Tried reloading a couple of times but nothing.

Deleted and installed 3.0 and it works fine now. Guess am gonna skip 3.1.1 for now.

Same problem here. Came from working 3.0.0.
3.1.1 not working. Went back to 3.1.0 -> not working
Went back again to 3.0.0 -> everything is fine

Same issue. Version 3.0.0 work fine.

I can confirm this bug - my e-mail has no capital letters and also rolling back to 3.0.0 fixed the problem.
Will wait for a version that fixes this issue

Sorry guys, there was an error on manifest.json, please try 3.1.2

After update to 3.1.2 still Failed to connect:
Logger: custom_components.tapo.config_flow
Source: custom_components/tapo/config_flow.py:143
integration: TP-Link Tapo (documentation, issues)
First occurred: 22:40:58 (1 occurrences)
Last logged: 22:40:58
Failed to setup cannot connectTraceback (most recent call last): File "/config/custom_components/tapo/config_flow.py", line 317, in _async_get_device await device.update() File "/usr/local/lib/python3.12/site-packages/plugp100/new/tapodevice.py", line 79, in update await component.update(state) File "/usr/local/lib/python3.12/site-packages/plugp100/new/components/hub_children_component.py", line 47, in update await child_device.update() File "/usr/local/lib/python3.12/site-packages/plugp100/new/tapodevice.py", line 79, in update await component.update(state) File "/usr/local/lib/python3.12/site-packages/plugp100/new/components/smart_door_component.py", line 15, in update self.is_open = current_state["is_open"] ~~~~~~~~~~~~~^^^^^^^^^^^ KeyError: 'is_open' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/config/custom_components/tapo/config_flow.py", line 143, in async_step_user device = await self._async_get_device(user_input) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/tapo/config_flow.py", line 322, in _async_get_device raise CannotConnect from error custom_components.tapo.errors.CannotConnect

Sorry guys, there was an error on manifest.json, please try 3.1.2

Hello, sorry but it's still not working, even after reload

Same here (3.1.2. and 3.1.1.).

I also get the same error. Only version 3.0.0 works.

Same here. I upgraded in version 3.1.2 and I got the same error.

Not working 3.1.1 & 3.1.2

Same here.

@petretiandrea
Hi, Do you have any news about a correction ? for the moment i stay on 3.0.0 witch is the latest version with H100 working

I am on Tpao 3.2.902 and the problem still occurs.

Same issue here. Working fine on 3.0.0 but not working on any later versions.

Something "odd" happened for me this morning- I was having the same issues as others have mentioned here (on 3.1.2). Today I restarted HA as I was updating a Hikvision integration, andd all Tapo authentication errors are gone! And have remained gone for the past two hours.
All my devices are plugs....

Something "odd" happened for me this morning- I was having the same issues as others have mentioned here (on 3.1.2). Today I restarted HA as I was updating a Hikvision integration, andd all Tapo authentication errors are gone! And have remained gone for the past two hours. All my devices are plugs....

Plugs work for me. The only issue is with the hub, but it works now through Matter.

Something "odd" happened for me this morning- I was having the same issues as others have mentioned here (on 3.1.2). Today I restarted HA as I was updating a Hikvision integration, andd all Tapo authentication errors are gone! And have remained gone for the past two hours. All my devices are plugs....

No problem on plugs, problem is only on H100 hub

Algo "extraño" me sucedió esta mañana: estaba teniendo los mismos problemas que otros han mencionado aquí (en 3.1.2). Hoy reinicié HA mientras actualizaba una integración de Hikvision, ¡y todos los errores de autenticación de Tapo han desaparecido! Y han permanecido ausentes durante las últimas dos horas. Todos mis dispositivos son enchufes....

Los enchufes funcionan para mí. El único problema es con el hub, pero ahora funciona a través de Matter.

How do you did it?? Thanks

Still no news of correction, so i've followed other user and have uninstalled this extension and use MATTER instead, i've lost battery informations but it perfectly works

Still no news of correction, so i've followed other users and have uninstalled this extension and use MATTER instead, i've lost battery informations but it perfectly works

Yes, I also did the same as you and everything is working. It’s a shame that this repository is not updated.

Switching to Matter would be nice, but I use the siren from the H100 as a doorbell, which Matter cannot use. So I'm still waiting for a fix and until then I'm using version 3.0.0.

Switching to Matter would be nice, but I use the siren from the H100 as a doorbell, which Matter cannot use. So I'm still waiting for a fix and until then I'm using version 3.0.0.

I'm sorry for this question, but can anyone tell me or put a link to follow how can I rollback to version 3.0.0 ? I was able to swich to Matter but I need to use the siren from the H100 too. Cheers.

Delete the addon, then add it again from HACS, but first select version 3.0.0 in the installation window. Then ignore the prompts to update.

Switching to Matter would be nice, but I use the siren from the H100 as a doorbell, which Matter cannot use. So I'm still waiting for a fix and until then I'm using version 3.0.0.

I'm sorry for this question, but can anyone tell me or put a link to follow how can I rollback to version 3.0.0 ? I was able to swich to Matter but I need to use the siren from the H100 too. Cheers.

Delete the addon, then add it again from HACS, but first select version 3.0.0 in the installation window. Then ignore the prompts to update.

Ok I didn't thought it will be as simple as that. Thank's a lot.

Delete the addon, then add it again from HACS, but first select version 3.0.0 in the installation window. Then ignore the prompts to update.

For anyone struggling to rollback to a specific version make sure you have adblocker turned off. When I selected redownload nothing happened. I incorrectly assumed that something was happenning in the background but the expected behaviour is that a window should pop up like this:

Turn off adblocker if you don't see it.

Whenever I update from v2.14.0 to anything, I lose my H100 and all connected devices completely.  Not just "haven't read the sensor yet" (which is common) but there are no H100-connected entities or devices anywhere to be found and all my cards break.
Just tried it again - same thing.  Had to restore from backup.
I've now got to the point where I'm staying at 2.14 until I see H100 is fixed in the Changelog.

Same thing for me.  But I can't get the "matter workaround" working for me (matter has never worked for some reason).
Any idea when this will be fixed?

Can confirm that I also encountered this issue. I tested with version 3.1.1 and 3.1.2 and it breaks connecting to a H100 Hub.
Unfortunately, I didn't get a chance to capture the logs of the original error before I removed the hub but this is the error I received when trying to re-add it (unsuccessfully):
`Logger: custom_components.tapo.config_flow
Source: custom_components/tapo/config_flow.py:231
integration: TP-Link Tapo (documentation, issues)
First occurred: 10:14:36 PM (1 occurrences)
Last logged: 10:14:36 PM
Failed to setup cannot connect
Traceback (most recent call last):
File "/config/custom_components/tapo/config_flow.py", line 317, in _async_get_device
_LOGGER.error("Tapo exception %s", str(exception.error_code))
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/plugp100/new/tapodevice.py", line 79, in update
await component.update(state)
File "/usr/local/lib/python3.12/site-packages/plugp100/new/components/hub_children_component.py", line 47, in update
await child_device.update()
File "/usr/local/lib/python3.12/site-packages/plugp100/new/tapodevice.py", line 79, in update
await component.update(state)
File "/usr/local/lib/python3.12/site-packages/plugp100/new/components/smart_door_component.py", line 15, in update
self.is_open = current_state["is_open"]
~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'is_open'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/config/custom_components/tapo/config_flow.py", line 231, in async_step_discovery_auth_confirm
device_info = await self._async_get_device_info_from_discovered(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/tapo/config_flow.py", line 295, in _async_get_device_from_discovered
File "/config/custom_components/tapo/config_flow.py", line 322, in _async_get_device
custom_components.tapo.errors.CannotConnect
`
If I recall correctly, I think the self.is_open was returning as type Null.
If I'm correct, the error stems from this commit. If you look at line 55 (green), this is where my error comes from. I don't have the skills to be able to trace this further back but it could be stemming from a KLAP auth error which results in the query is_open returning Null. This was the only difference in the releases that could be causing the error from what I could find. Screenshot of the code in question attached:

I was going to try to add a try-catch in there to see if that resolved the issue but I've been working on this for hours now and can't see straight anymore. If you need a hand with anything @petretiandrea, just let me know. Thanks again for all your hard work with this.

Not stale, not upgrading cause of this issue

Not stale, not upgrading cause of this issue

Not stale as above. Not upgrading because of this issue

+1

FTR there's a proposed fix in #759 (but no activity on reviewing it). Unfortunately manually applying it is difficult if you have HAOS managed OS.

I've just noticed that the official "TP-Link Smart Home" integration has fairly recently got support for the H100 hub and a number of attached sensors (for me, attached light switches, temperature sensors, water alarm and door/contact sensor are all working).
Consequently this custom integration is perhaps obsolete for some, and you can fix the H100 issue by configuring it in the core tp-link integration. The only caveat is that entity IDs change, so you need to remove the old devices and connect automations to the new entity.

Good News! Home Assistant and Kasa now support matter (beta). Successfully added mine to HA.
For the iOS kasa app:
Open App > Click your smart hub (mine is a KH100) > Setting icon in top right > Bind to matter

Yes, I wrote about it here: https://github.com/petretiandrea/home-assistant-tapo-p100/discussions/799
But for me, Matter integration is broken due to incorrect reporting of heating status.

Yes, I wrote about it here: #799 But for me, Matter integration is broken due to incorrect reporting of heating status.

Strange, anecdotally it works fine for me. Two ways too, I can control the TRVs from HA and it updates in Kasa and Apple Home, and if I control them from Kasa or Apple Home it updates in HA. Allowing my automation to turn the boiler on to work

Depends on how the automation is configured. I prefer to keep valves "on" (idle) all the time and then change only the temperature, so heating status is important. Andrea's integration shows "idle" as "off" (which is fine), while the TP-Link one (from HA repo) implemented idle status too. Matter is broken as it shows "heating" regardless if TRV is actually open or idle.

Matter is broken as it shows "on(heating)" regardless if TRV is actually open or idle.

Not sure why you do it the way you do, but doing it the correct way works fine.
In automations I monitor the states of all the TRVs and if any of them change then it triggers the automation, which checks if any of the TRVs are set to heat and if so, turns the google nest on, else turns it off. Pretty simple.
On the google nest I have it set to the max temp of 32ºc which means that regardless of if the fire is lit in the lounge, where the nest is, it will turn the boiler on if the rest of the house requests heat.
We had the Nest before we bought the TRVs, if I were to do it again, I'd just use a simple relay and not bother with the nest, but since we have it, no point replacing it.

Обновил интеграцию на последнюю версию в ручную через ssh.
Просто через git clone скачайте папку tapo в каталог /homeassistant/custom_components


fix: respect trailing slash option when navigating from the root page of the basepath

fixes https://github.com/sveltejs/kit/issues/11382
The implementation for ensuring the basepath root page always ends with a trailing slash in https://github.com/sveltejs/kit/pull/10763 is wrong because it was implemented in the load_node method, causing the always trailing slash option to be set on all nodes the root page uses (such as the root layout node), and affecting pages other than the root page. This PR moves the logic closer to where we normalize the URL based on the trailing slash option so we only evaluate the correct trailing slash option after loading the nodes.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

It looks like the tests are failing
A note that it looks like https://github.com/sveltejs/kit/pull/11357 fixed the server-side and this is fixing the client side

Tests are fixed now. Targeting the link by its href was a bad idea when there's the base path variable involved

hi sir, im facing issues with nginx related to this issue,
lets say im at website.com/demos/app/login , when i use sveltkit goto function it goes at website.com/demos/app and all static files are broken... let me know if you need more info, im using
export const trailingSlash = 'always';
hope it will work, but looking for something like, fallback if 404 for asset, like nginx try files, the basepat, asset path etc in svelte config was very confusing.

hi sir, im facing issues with nginx related to this issue, lets say im at website.com/demos/app/login , when i use sveltkit goto function it goes at website.com/demos/app and all static files are broken... let me know if you need more info, im using export const trailingSlash = 'always';  hope it will work, but looking for something like, fallback if 404 for asset, like nginx try files, the basepat, asset path etc in svelte config was very confusing.

@Nikhil-Software-Cartel please provide a reproduction in a new issue or discussion. The svelte discord is a great place to start as well.

I just spent 1.5 hours debugging this and was about to submit my own PR when I saw this - thank you for all your work everyone!


QEventDispatcherUNIXPrivate(): Unable to create thread pipe: Too many open files

<EMAIL_ADDRESS>commented:

Which version of PhantomJS are you using?
1.6.0 (development)
What steps will reproduce the problem?

Write the following script (saved as phantomServer.js) :

var service;
var server = require('webserver').create();
// Start WebServer and listen on port 8585
service = server.listen(8585, function (request, response) {
 // Retrieve url to browse
 var url = request.url.replace(/[^?]+\?url=(.+)/g, '$1');

page = new WebPage();

// On load finished, send processed contents to Webserver's HTTP response
page.onLoadFinished = function (status) {

    console.log("Loading finished: url - Status: "+status);

  var src = page.content;

  // Release page handle
  page.release();

  //@TODO implement IF status is OK

  // Return processed content
  response.statusCode = 200;
  response.write(src);
  response.close();
};

// Request url and load its content
page.open(url);

});

Start this script as follows: phantomjs --load-images=no --disk-cache=yes phantomServer.js

Write a php script (or in any other language) that simply crawl a large set or urls and display their pages contents (let's say more than an hundred) using a for loop, using curl, building the urls strings as follows:
$url = 'http://localhost:8585/?url=http://www.example.com'

What is the expected output? What do you see instead?
The expected output should be the urls pages contents.
Everything went fine until some random moment, the phantomServer.js scrit crashes and I got the following error messages:
QEventDispatcherUNIXPrivate(): Unable to create thread pipe: Too many open files
QEventDispatcherUNIXPrivate(): Can not continue without a thread pipe
Which operating system are you using?
Ubuntu 10.04 LTS
I compiled PhantomJS from source.
It seems that the WebPage ressource is never really released, even with the "page.release()" piece of code used. Thus, when requesting the PhantomJS WebServer to crawl a large set or URLs, we end with too many thread pipe opened. I would say it has something to do with Qt.
(See:
https://bugreports.qt-project.org/browse/QTBUG-20148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs
http://sourceforge.net/projects/wally/forums/forum/848087/topic/3496445
http://stackoverflow.com/questions/10013094/does-the-qt-event-listener-occupy-a-file-handle)

Disclaimer:
This issue was migrated on 2013-03-15 from the project's former issue tracker on Google Code, Issue #560.
:star2:   2 people had starred this issue at the time of migration.

I have found this workaround to work for me on MRI ruby: http://jonstokes.com/2014/07/07/monkey-patching-poltergeist-for-web-scraping-with-jruby/


PBXCp Error Missing Fonts in Xcode

upgrading existing RN 0.44 project with native-base 2.1.5
npm install --save native-base
react-native link native-base
open Xcode (after clean and restart) build fails with several PBXCp errors for missing font files:

error: /Users/random.person/ReactNative/RandomProject/node_modules/native-base/Fonts/Andale Mono.ttf: No such file or directory

or in terminal with react-native run-ios

CpResource /Users/random.person/ReactNative/RandomProject/node_modules/native-base/Fonts/Andale\ Mono.ttf build/Build/Products/Debug-iphonesimulator/SaveAs.app/Andale\ Mono.ttf

I was able to resolve this issue with the following steps. (perhaps steps 1 & 3 aren't even necessary)

react-native unlink native-base
removing font files in Resources folder within xcode
react-native link native-base

Make sure you have native-base installed.
npm install  native-base --save

For whatever reason, using yarn instead of npm resolves this for me

I had the same problem with react-native-vector-icons. I did what @natwales suggested (changing native-base by react-native-vector-icons, obviously). It did work!


C# Sample Updates

Please update samples to align with Chakar/ChakraHost

hey @grahamehorner , are there any parts of the samples you feel are outdated?

the sample I have looked into seem all to be using native calls into the api and not using the c# wrapper, given that unsafe methods have been wrapped to ease intergrations IMHO samples should show how to use the wrapper.

This is intentional since we own ChakraCore and its hosting API. The C# wrapper is technicality a tool built for/on top of that and if possible we'd love something like that to be owned/updated by the community.


Spigot selection does not seem to work right now

Sorry forgot to put issue.
On the pull from web the himalaya command is not found.
The install put a node-module in usr/bin
not sure what to do.

Sorry forgot to put issue.
On the pull from web the himalaya command is not found.
The install put a node-module in usr/bin
not sure what to do.


How to draw the input-ground truth luminance mapping curve?

Hi, onpix. Thanks for sharing the excellent work!
The pictures in your paper are so beautiful and amazing! I would like to ask how to draw the input-ground truth luminance mapping curve like this? THANKS!

Thanks for your attention! these figures are produced using matplotlib.pyplot.scatter, by sampling N pixels for each input-GT pair, you can draw the mapping between each image pair as a colored scatter plot.

Thanks for your guidance, I've got it!


Try reading and writing the LHM steady-state

@HendrikKok tried to read and convert the LHM as created by Peter. He succeeded, but it required some manual fixes. I think it would be worthwhile to do that exercise again and note down all the issues we encounter. Furthermore we can do some profiling on this if we deem this conversion too slow (e.g. slower than iMOD5).
Context
This LHM was already converted from quasi-3D to fully 3D, which is a requirement.
Known issues
@HendrikKok already encountered the following issues during conversion:
iMOD Python

Wells will not work yet until #1116 and #1096 are fixed, remove those from the projectfile.
There is no storage package, this will make iMOD Python throw an error. Hendrik added it manually. We could turn off the validation for this.
Apparently we require a recharge package somewhere
He was unable to dump a model with the HFB package, this is worthy of a separate issue.

The model
There are also some issues with the model:

I recall there was some error in a path. This will be thrown when calling open_projectfile_data. Contact Hendrik if we cannot find the cause.
The river packages will throw validation errors; there are still some mistakes in it apparently.

Merged in #1127


Making synthesis objects more consistent

This is a (really large) set of changes to address #135: making the synthesis objects more consistent with each other. That involves:

making sure their call signatures and method names are as similar to each other as possible.
making sure they all have save, load, to
adds several validation functions they all use to make sure inputs, models, metrics look good
a new subclass of synthesis, OptimizedSynthesis, which is inherited by Geodesic, MADCompetition and Metamer, since they all use optimizers and thus have more similarities
metamer's coarse-to-fine synthesis is now moved to a separate subclass, MetamerCTF, which simplifies the internals of metamer a lot (there were if statements everywhere)
all plotting functions moved out of the class so they reside in the file of the same name (e.g., po.synth.eigendistortion.display_eigendistortion), which follows what happened in #136 for metamer
adds two new documentation pages, synthesis.rst and models.rst, which describe the synthesis and models, respectively. I expect models will be read by users, whereas synthesis is most helpful for us and other developers.
adds a new notebook, synthesis_extensions.ipynb, which describes how to inherit synthesis objects and over-write methods for simple extensions.
removes Synthesis.ipynb, as it was out of date and no longer helpful
uses @property (see here for an overview) to make many important properties read-only (don't want users over-writing image or model after initialization). also used to change the structure of some attributes (e.g., make sure that .geodesic always returns the endpoints plus the optimized part, and that .saved_metamer is a tensor, rather than the list we append to during synthesis), so that the user's interaction with them is always consistent, even if they hit a keyboard interrupt or hit an exception during synthesis (preventing clean-up code from being written)
adds tests for new things
checks ability for multi-batch / channel of all synthesis methods (and adds tests). All can accept multi-channel images, and Metamer and MADCompetition can accept multi-batch, though MADCompetition requires the output of the metrics to have a single value (e.g., a video metric). Metamer can synthesize multiple images in parallel across batch, though that's probably not a good idea
also checks for ability to work with different dtypes (torch.float64, mostly)
started changing generic Exceptions to more specific ones (generally, ValueError), though didn't finish #85 , and used more specific error catching in tests

Geodesic is probably changed the most by this. After making the changes I ran the new and main versions with the following:
start = center_crop(po.load_images('data/256/einstein.pgm', False), [64])
stop = center_crop(po.load_images('data/256/curie.pgm'), [64])
model = po.simul.OnOff((31,31), pretrained=True)
model.eval()
po.tools.remove_grad(model)
po.tools.set_seed(0)
moog = po.synth.Geodesic(start, stop, model, 5)
moog.synthesize()
po.synth.geodesic.plot_loss(moog)
moog.losses[-1]
po.synth.geodesic.plot_deviation_from_line(moog)

(remove the po.tools.remove_grad line and change the plotting calls to moog.plot_loss(), moog.plot_deviation_from_line() to get this running with main version)
The outputs look the same, have the same loss, and the deviation plot looks the same. They're not identical (torch.allclose fails) and they take different number of iterations, but I believe functionality has been preserved. If we have a good working synthesis example, I'd love to add it to tests, but that might take a bit more playing around
See the new documentation page synthesis.rst for a description of how things are structured, that will probably help understand the changes to the synthesis methods. Also the new models.rst for a description of what models have to meet in order to be used.
I'm not strongly tied to any of the changes here, just the idea of consistency and I had to make several arbitrary decisions, so I'm happy to change stuff if people disagree. I'd definitely like feedback specifically on  where  the new documentation pages and notebook belong? should they be structured like this (all flat) or should we do a sort of "for developers" or "advanced usage" hierarchy for synthesis.rst and synthesis_extensions.ipynb?

Codecov Report

Merging #196 (4777823) into main (6c69ee9) will increase coverage by 2.23%.
The diff coverage is 86.45%.

@@            Coverage Diff             @@
##             main     #196      +/-   ##
==========================================
+ Coverage   77.02%   79.25%   +2.23%
==========================================
  Files          34       36       +2
  Lines        3060     3346     +286
  Branches      617      639      +22
==========================================
+ Hits         2357     2652     +295
  Misses        514      514
+ Partials      189      180       -9

Impacted Files
Coverage Δ

plenoptic/metric/model_metric.py
100.00% <ø> (ø)

...e/canonical_computations/steerable_pyramid_freq.py
73.49% <0.00%> (-12.96%)
:arrow_down:

plenoptic/simulate/models/frontend.py
93.45% <ø> (ø)

plenoptic/synthesize/metamer.py
84.88% <ø> (+8.64%)
:arrow_up:

plenoptic/synthesize/simple_metamer.py
28.57% <14.28%> (+2.99%)
:arrow_up:

plenoptic/tools/display.py
68.63% <50.00%> (ø)

plenoptic/synthesize/synthesis.py
82.14% <80.48%> (+4.67%)
:arrow_up:

plenoptic/synthesize/mad_competition.py
83.79% <81.90%> (+7.40%)
:arrow_up:

plenoptic/tools/convergence.py
84.21% <84.21%> (ø)

plenoptic/tools/validate.py
85.54% <85.54%> (ø)

... and 14 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Here's the docs build for this PR. The new pages are [

The docs build for this PR is here. The new pages are Model Requirements (user-facing) and Synthesis objects (developer-facing).

Thanks for maintaining this codebase! Here are a few comments from examining the files relevant to geodesics, there were too many changes for me to look at all of it in detail.
The ordering of methods is un-intuitive to me,  in my opinion sprinkling software technicalities/abstractions throughout risks obscuring the few lines where the action/computation is happening - which could make this file hard to read. Is there a good way to minimize this?
The @property decorator is new to me, and I don't really understand its purpose here - all good if it makes your life easier when maintaining this software.
The criterion of check convergence was confusing to me at first, but mostly I wonder why it is copied and used with a different name - why not directly call the pixel_change_convergence function inside of the synthesis method?
Why not apply the po.tools.remove_grad inside of the class, maybe at initialization, so that the user doesn't need to remember doing this extra step?
Maybe replace my clunky finite difference function with the built-in torch.diff function.
Note that some of the core functionalities concerning geodesics currently reside in the geodesics improvements branch (eg. conditional geodesic, and PC visualizations, as well as testing on factorized steerable pyramids). It would be great to integrate these pieces in the revamped library.

Thanks for the feedback @pehf. For each point:

Agreed. I rearranged them and tried to write up my thoughts in synthesis.rst
@property does two things, which I think are worth having:

makes the important public attributes (e.g., image, the synthesis attribute) read-only, so the user can't accidentally over-write them.
allows us to have different internal and external representations. E.g., _geodesic just includes the frames of the geodesic that we optimize, while geodesic includes the endpoints. Previously, this was handled by calling some clean up code at the end of synthesize, but that was fragile: if an exception was hit or the user stopped in the middle of execution, that code wouldn't run and it would be confusing.

Agreed it's a little unclear, but I think it's worth it because it gives each of the optimized synthesis a single method the user can overwrite if they want to change the convergence criterion. Just calling e.g., pixel_change_convergence in the middle of the synthesis loop would require users to overwrite the whole synthesize method to change it.
I'm trying to move away from silently doing things for the user. If it looks like one of our assumptions was violated, I want to raise an exception and tell the user how to fix it, rather than try to handle it for them. Same logic for why we raise an exception is not 4d, rather than just unsqueezing it. It will help users develop a better mental model of how the code works as well as make maintenance easier -- I don't want half the users realizing models can't have gradients attached and half not realizing that.
Yup, replaced geodesic._finite_difference with torch.diff
And agreed, I added some notes in the notebook and docstring that geodesic is under construction, and we'll try and get those merged in in June.


Get name suffix from the build.yaml file

Hello, I'm not sure if it's the correct approach. I'd be happy to hear the feedback.
Closes #1851

I've marked it as ready for review however, I haven't written the test/tests because I... don't know how to do it. Is it possible?

One way to test it is to make a separate project with a build.yaml dedicated for testing purposes.
There are also other ways of testing this that are more technical. If you fancy doing that, I invite you to look at how json_serializable does its tests.
One thing for sure is that a unit test for decoding the options would be neat.

It's looking pretty good though!

Thank you for the feedback! Please give me a few days. I would like to take a look at the json_serializable tests

@trejdych @rrousselGit Hi! Appreciate your work! What do you think about also adding a prefix option?
I think that naming is a highly opinionated thing. For example, I use pattern providerOfSomething. This way by typing "provider" I'm getting a nice list of autocompletion suggestions
builders:
  riverpod_generator:
    options:
      provider_name_suffix: ""
      provider_name_prefix: "providerOf" # podOf, etc...

Hello @rrousselGit  Sorry for the long delay. I've had some private issues 🙈
I've added a sample project and a unit test.
I've checked source_gen_test and I'm not sure how to use it. :(
It uses _MockBuildStep under the hood which don't do anything. Riverpod depends on BuildStep and I can't inject "our" mock. Am I missing something?
@qoob23 another thing is the name case. Currently, the generator changes case to a lower camel case so for your options it would be providerOfsomeName. But I also think that prefix would be nice. It would make possible "spec_cli convention" $providerName which is nice too.

Don't worry about source_gen_test, we don't need that part. It's mostly for error handling, which we don't have here
LGTM if you can move the example to the generator folder

Looks like the CI broke with your latest change

I have no idea what's wrong with CI. there is a simple flutter analyze and it works well locally :/

Hello, I've "fixed" the CI but there is a coverage problem... It is "covered" by the example project. Do you want me to add any more tests to increase code coverage?
BTW. I had to increase a timeout for the 'ensure_build' test.

Thanks. I'll look into this later

Looking good, Thanks!


Transaction doesn't update entity

I use your cloud functions to react some event in topic.
When even has occurred function has to select an entity to change a state.
But it doesn't work. The library doesn't update en entity in Datastore.
Environment details

GCP Cloud Function

Steps to reproduce

Create a cloud function
Add a dependency to work with Datastore (v2.1.2)
Prepare some entities
The function has to select some entities by query
Then update it

Code example
Datastore datastore = DatastoreOptions.getDefaultInstance().getService()

Query<Entity> query = Query.newEntityQueryBuilder()
                    .setKind("MyEntity")
                    .setFilter(eq("phoneNumber", "+15551014397"))
                    .build();

QueryResults<Entity> results = datastore.run(query);

Entity entity = results.next();

Transaction transaction = datastore.newTransaction();

Entity updatedEntity = Entity.newBuilder(entity)
        .set("state", 3)
        .build();

transaction.update(updatedEntity);

transaction.commit();

Stack trace
The result is success. No error.
But the entity in Datastore has not been updated with field entity.state = 3 - there is previous value/

Hi @aaukhatov , i tried replicating this issue with the mentioned library version as well as within a cloud function but couldn't replicate it.  Are you still facing this issue? If yes, would you be able to provide a dummy code sample where this issue is reproducible?
Thanks,

Hi @aaukhatov , i tried replicating this issue with the mentioned library version as well as within a cloud function but couldn't reproduce it. Are you still facing this issue? If yes, would you be able to provide a dummy code sample where this issue is reproducible?
Thanks,

Hi @jainsahab we just stopped using Datastore.


Simplify Value and Traversable APIs

Remove redundant methods such as convertTo (equivalent of fold).
Consider moving collect / reduction related methods to separate operator e.g.
   ListX.of(1,2,3,3,3).collectable().toSetX();

Completed on monad transformer branch


fix(transformer/async_to_generator): fix checking if function is class method

Follow-on after #7105.
Correctly identify when a function is a method definition. ctx.parent().is_method_definition() would return true for this weird case where the function is the property key of the method, not the method itself:
class C {
    [async function() {}]() {}
}

matches!(ctx.parent(), Ancestor::MethodDefinitionValue(_)) only returns true if the function is a method definition. Of course, no-one would write such ridiculous code, but we may as well handle whatever is thrown at us.
It's also slightly more performant to check for one specific ancestor type, rather than:
https://github.com/oxc-project/oxc/blob/c2802e63fc0a43a7be3a4caf30d179db9eca6e5e/crates/oxc_traverse/src/generated/ancestor.rs#L1319-L1326

#7117  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on  Graphite

Merge activity

Nov 4, 10:45 AM EST: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


proc-macro-error is unmaintained

https://rustsec.org/advisories/RUSTSEC-2024-0370.html

@lambda-fairy Can you please merge https://github.com/sbruder/maud/commit/e38f4deaf005858699c8fc49e7c653dfe82240c7


jijna field name cannot contain a period ( . )

If a column name contains a period, it errors. weird. Might want to check other special chars like -, # etc.
ItemNo. or Item_No. for example...

looks like a # errors too


compact: Excluded last block with shortest range instead of newest one by ULID.

Fixes https://github.com/prometheus/prometheus/issues/3943 issue.
Added test cases.
Signed-off-by: Bartek Plotka<EMAIL_ADDRESS>

:+1:

Who's approval we need more to merge it? I guess some green flag from @fabxc ? We talked about this change set offline, but I guess his quick look might be useful here (:

I'll try to get to it after lunch over here
On Tue, Mar 13, 2018, 10:30 AM Bartek Plotka<EMAIL_ADDRESS>wrote:

Who's approval we need more to merge it? I guess some green flag from
@fabxc https://github.com/fabxc ? We talked about this change set
offline, but I guess his quick look might be useful here (:
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/tsdb/pull/299#issuecomment-372685074, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEuA8vE7sNNqkGeAq4ePn3vS9JyCOhBkks5td9f-gaJpZM4SomVP
.

@fabxc wonder if we should check if compaction level == 0 just in case ^^


WIP.  Add a jooq ExecutionListener to the DSLContext so that we can wrap Da…

…taAccessException.  Also added a connection method that will catch and wrap exceptions.

LOVE this


Upload fails after move of project

Since my repo has moved from https://github.com/tom-englert/ResXResourceManager to https://github.com/dotnet/ResXResourceManager I can't upload my extension any longer.
https://dev.azure.com/tom-englert/Open Source/_build/results?buildId=3628&view=logs&j=fd490c07-0b22-5182-fac9-6d67fe1e939b&t=93477e13-d765-5095-a9ee-8e38816a86b7
Upload fails with
-Exception: >System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
Is there any way to fix this?

I rewrote and updated vsixgallery.com. You need the latest .ps1 script. Make sure to always dynamically download the script instead of having a copy of it like this example.

I tried this, but it fails as well. It fails with any .vsix I have tried.
I downloaded the source of the gallery and ran it locally - there it works.
(new-object Net.WebClient).DownloadString("https://raw.github.com/madskristensen/ExtensionScripts/master/AppVeyor/vsix.ps1") | iex

$env:APPVEYOR_REPO_PROVIDER = 'github'
$env:APPVEYOR_REPO_NAME = 'dotnet/ResXResourceManager'

Vsix-PublishToGallery "D:\Develop\My Open Source\Deploy\ResXManager.VSIX.vsix"

looking at the call stack it looks like an SSL issue
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.ConnectStream.WriteHeaders(Boolean async)
   --- End of inner exception stack trace ---
   at System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
   at System.Net.WebClient.UploadFile(String address, String fileName)

Could fix it by enabling Tls12 in the script


[KR] Update named-routes.md

@kazupon
Please merge this PR
@jyqry 감사합니다

@ChangJoo-Park
Thanks!


chore: update nodejs matrix

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[T4A2][W09-A2]Lee Pei Xuan

ready for review

Accepting this PR without a review because, either

we already review this PR during tutorial.
another of your PRs for this tutorial was reviewed in detail.
minimally reviewed and found no important issue.


minor: trailing space in on_cluster_clause()

Hi!
I want to use on_cluster_clause in my dbt run-operation macros but it introduces line brakes.
If we look at code:
{% macro on_cluster_clause(label) %}
  {% set active_cluster = adapter.get_clickhouse_cluster_name() %}
  {%- if active_cluster is not none %}
    ON CLUSTER {{ active_cluster }}
  {%- endif %}
{%- endmacro -%}

I can see two things:

no whitespace control after if/endif statements
unused label variable

I'm curious is line break left for some purpose or is it safe to patch it. Thanks!

All sorts of dbt macros introduce line breaks, so the whole package is dependent on them having no effect when sent to ClickHouse.   Feel free to clean it up -- I definitely missed some -s in the macro statements.
The label variable is included for backward compatibility in case anyone was using this macro with the label, but it really made no sense.


Some improvements/fixes

1.

Look at the output. There's a useless newline. I have no exclusive/special knowledge in Rust, so I don't know the various macros in the program. I think there could be a fix.

It happens here too.
2.
How about displaying the profile picture on the left of the box? Looks like the viuer crate could do the job.
3.

This never happens if the terminal size is sufficient, but when the terminal is small, the output becomes garbled in a very unfashionable way. Neofetch solves the problem by detecting the terminal size and cutting the output. Looks like https://docs.rs/term_size/0.3.2/term_size/ could help you out.

there is a hardcoded spacing for the terminal box, maybe that is what caused the #3 problems, other than that ill try to look into it

I dont think the 1-2 issue should be a big problems though, neofetch also have it and it is in bash iirc, How about add a new line at the start to balance it out? Maybe if we cant hide it maybe we could just embrace it? :D

I dont think the 1-2 issue should be a big problems though, neofetch also have it and it is in bash iirc, How about add a new line at the start to balance it out? Maybe if we cant hide it maybe we could just embrace it? :D

If you said that to Linus, he would've ranted like crazy tho
anyways I think adding an xtra newline at the top would make sense too

there is a hardcoded spacing for the terminal box, maybe that is what caused the # 3 problems, other than that ill try to look into it

Save the variable using the term_size function and use it in let dashes = "─".repeat(self.longest_line + 3 - 18); somehow, I don't know Rust-specific stuff

I dont remember what the - 18 is for, but it solved my problems earlier. Maybe ill try to get term size and use in the math itself

for the - 18: i think the push functions also counts the main_color and accent_color into its length too, thats why i use -18 to deduct it out, i think its also works like that too


Transform Windows path into valid url

Hi there! First of all, thank you to the creators and maintainers of this helpful package. As a Windows user, I stumbled upon issue #15. I propose a quick (and I believe harmless?) fix by replacing the "\\" with "/" in the URL. This allows me to run the Quick start example.

I don't know if there's any python convention for doing this, but this seems reasonable to me.


Fixed typo in "Configuring Apt from hiera example"

This fixes 09fe368ae25afca684b75e87d81486252ccb6822, which should originally fix the problem that the class is named apt::source.
To actually configure repositories, you need to use apt::sources as init.pp hands this down to source.pp.

Many thanks !


⚠ Guya.moe Proxied has degraded performance

In 5ffaa9e, Guya.moe Proxied (https://ice.guya.moe/) experienced degraded performance:

HTTP code: 200
Response time: 13168 ms

Resolved: Guya.moe Proxied performance has improved in 12018e7 after 16 minutes.


3d scan booth, optimize time between captures, different settings

I have a 3d scan booth with 60 pi cameras, 12 dslr.  Booth takes one set of images with normal lighting, immediately followed by another set with lights off, projectors on (noise pattern image projected for better 3d render).  I am having trouble how to code the sequence so that time lapse between the two shots is minimal.  I assume I should initialize the camera at boot, and when the shoot sequence is triggered, load camera settings used for the image with regular lighting,  capture the image, load settings for image with projected lighting (I can tune lights/projector on/off timing with GPIO), then capture the second image.  If it's possible, I would like to delay actual writing of both images to disk until after second image is captured.  I am not much of a programmer and I can't figure this out.  Can anyone offer suggestions?  I assume raspistill is not the command to use to accomplish this.


Which repository is correct?

Which repository will be developed and supported in the long run https://github.com/ton-core/ton or https://github.com/ton-org/ton-core?
I see that on both of these are commits that are missing on the other. I think we should at least put a deprecation notice on one of them
Also do we now when https://github.com/ton-core/ton-core/pull/33 will be released to npm?

ton-core/ton is now deprecated. Only this repo would be supported and published to NPM as @ton/core