FileInput Active Form value by hidden input is empty

Hello, I have ActiveForm FileInput:
$form->field($model, 'payed_bill')->fileInput();

Generated HTML is:

   Оплаченный счет
   <input type="hidden" name="Bill[payed_bill]" value=""><input type="file" id="bill-payed_bill" name="Bill[payed_bill]" value="assets/orders/8372c0a71fd6495ba1005259e6b5e42b.jpg">

In this case, when I update the model, the value form payed_bill field was removed, if I do not attach a picture. I think is it wrong.
It will be fixed if from this line delete value key https://github.com/yiisoft/yii2/blob/b7b9c8ba40d65ec7c745ee639a8a6eb96e7aea75/framework/helpers/BaseHtml.php#L1355
After this, if do not attach image and update model field will be saved, but if attch image (or file) - field will be updated.

Why are you trying to load files from fileinput from asset path? It's user input
When no file is selected, the value is empty. Seems normal to me
When a file is selected, it is often displayed as c:\fakepath\file.ext, which is not reusable.

When no file is selected, the value is empty. Seems normal to me

Example: You have an order with a bill. You need to update its status and change the manager. You go to the editing model and change the fields. Also, when editing the model, you can attach a new pdf bill. But now you do not need it. (new bill) And if you update the model without attaching an bill, bill will be lost.

When a file is selected, it is often displayed as c:\fakepath\file.ext. AFAIK the server only receives the file itself and the file.ext part. This is not enough to fill value in any usable way and thus it is cleared.

I show HTML, that generated when I see model's update page with attached bill.

I don't think that is how fileInput is supposed to work. See https://yii2-cookbook.readthedocs.io/forms-uploading-files/: a seperate field is used to handle file upload.

All right. Try to do the algorithm that I described above. If you do not lose the file that was loaded in the first iteration, then please explain to me what I'm doing wrong. The algorithm is as follows:

create a model with a text field and a file
fill the text field and attach the file. Save model.
go back to the model. Change the text box and save model
go back into the model again. Now you should see that the file is no longer attached.

That is, the file can be attached with any changing of the model, but if it is not done at each, it will be lost.

I understand what you are trying to do, but that is not what your code will do.
When you submit the form the second time, the browser might try to upload assets/orders/8372c0a71fd6495ba1005259e6b5e42b.jpg, which does not exist (from the browser upload point of view). Therefor UploadedFile::getInstance correctly sets the value to zero, as no valid file is uploaded.

It depends on your form processing code.


Update existing OSD API's to use new Display Types

Specifically, anywhere a color is defined.

The ODE Areas and Triggers have been updated to use the new Rectangle display type.  The OSD Clock APIs have yet to be updated to use font and color params... which I may push out to a future milestone.

The current implementation seems sufficient. Will reopen if found to be otherwise.


images don't load

Since webserver/blob->presented now assumes a structure with a :nextjournal/presented key that doesn't apply to the slideshow viewer.

(ns example-talk
  #:nextjournal.clerk{:visibility {:code :hide}}
  (:require
   [clojure.java.io :as io]
   [nextjournal.clerk :as clerk]
   [nextjournal.clerk-slideshow :as slideshow])
  (:import
   (javax.imageio ImageIO)))

;; ---
;; # Testing

^{::clerk/visibility {:result :hide}}
(comment
  (clerk/add-viewers! [slideshow/viewer])
  (clerk/reset-viewers! clerk/default-viewers))

(ImageIO/read (io/file "test-image.png"))

On first load this works correctly, but after evaluating the add-viewer line, it renders a broken image instead.

Fixed in Clerk with https://github.com/nextjournal/clerk/commit/0de032d53c796ed7296fbd56c1c57fa7ee8b0604.


Rewrite ScannerBuilder and ScannerConfig

What have you changed?

Add desc setter to make desc optional.
Add create_cf_cursor_and_take method, to make the build progress more semantic. The bounds would be cloned in create_cf_cursor and be taken in create_cf_cursor_and_take.

What is the type of the changes?

Improvement (a change which is an improvement to an existing feature)

Related issue
#5531

@leiysky Please resolve conflict.


Compiler option "listFiles" unsupported in tsconfig.json

Hey All,
atom-typescript currently displays an error when a tsconfig.json file uses the "listFiles" compiler option. It looks like this option is missing from /lib/main/tsconfig/tsconfig.ts

Verified bug : http://json.schemastore.org/tsconfig :rose: Up for grabs

Hey Basarat,
I'd be happy to create a pull request for this, since it looks like there's only two lines of code that need to be added. I'm not really looking to set up a complete dev environment for atom-typescript in order to fix the issue, though. Would it be reasonable for me to fork/branch/fix/pull-request "blindly"?
Otherwise I will wait patiently, :)
Thanks!

Otherwise I will wait patiently

Sadly I really wish I had tests setup in place, so better to wait ... it is indeed two lines though

Ok, no prob!

:+1:

fixed with 6.0.15 :rose:

:smile_cat: thanks!


Using CallKit APIs on Video Quickstart app.

Using CallKit APIs on Video Quickstart app.

👍 Please merge once the spec change is live.


feat(ComposedModal): close ComposedModal when the buttuns is clicked

Close the ComposedModal when the Cancel or save buttun is clicked
Changelog
New
Changed
Removed

Hi @rezak-otmani! 👋 Thanks for taking the time to do this 🙂 While we're reviewing the PR, could you take a moment to fill out the changelog in the PR template? Would help a lot for reference looking back to this diff in the future.

What's the status on this @asudoh @rezak-otmani ?


a lot of generate_204 failed

Environment

System:
OS: macOS 10.15.5
CPU: (4) x64 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz
Memory: 21.59 MB / 16.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.18.1 - /usr/local/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.5 - /usr/local/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.6.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.2, DriverKit 20.0, macOS 11.0, tvOS 14.2, watchOS 7.1
Android SDK: Not Found
IDEs:
Android Studio: 3.6 AI-192.7<IP_ADDRESS>41897
Xcode: 12.2/12B45b - /usr/bin/xcodebuild
Languages:
Java: 14.0.2 - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.13.1 => 16.13.1
react-native: https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz => 0.63.2
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Platforms

ios
Versions

Android:
iOS:
react-native-netinfo:
react-native:
react:

Description

a lot of generate_204 request failed
Reproducible Demo

Duplicate - good info here: https://github.com/react-native-netinfo/react-native-netinfo/issues?q=+generate_204+


Do not install both venv-salt-minion and salt-minion

What does this PR change?
Clean up  cloud-init so that we do not install both the bundle and normal salt-minion packages.

The tests show, while the situation is cleaner right after sumaform has run, we still have the problem when the test suite runs:
[root@suma-42-min-centos7 ~]# grep master /etc/salt/minion.d/susemanager.conf /etc/venv-salt-minion/minion.d/susemanager.conf
/etc/salt/minion.d/susemanager.conf:master: suma-42-pxy.mgr.suse.de
/etc/venv-salt-minion/minion.d/susemanager.conf:master: suma-42-pxy.mgr.suse.de

Affects only 4.2 and only the RH-like minion.


Download of files and drawings.

Document icons should be clickable for download of document.

Implemented in release 1.1.4.


The use case for MYX

Hey, I've been looking at a lot of lending platforms throughout the last few months, my though is that this era is coming to an end.
This is why I'm asking the @monyxcoin team, why don't you make the MYX use case for staking only? 0.5%-1% staking reward or like 20% per month or something, would skyrocket the price of the coin as well, then implement more use cases as time goes

Simply because with staking you are lending your coins, and not USD value of it. Therefore, with regular lending scenario, the company was able to pay out interest base on the assumption that capital release will release USD value of lending. Let’s say you have lend them 500 coins at 2$ value each, you have lent 1000$ but your money is locked for 100+ days, this is to allow a coin to raise its value. If the coin increased its value from 2$ to 10$ over this time, your capital release was just 100 coins, therefore company have been now left with 400 coins worth at this stage 4000$.
With staking only, company would have to 'print' new coins all the time to pay for it and with the rates you are proposing it would mean that there would be 20% more coins more on the market every month. Therefore, the price of the coin would keep dropping.
The only options I can see for those companies is to implement lending as we know it, and maybe rename it to something else that does not have a bad fame or keep investing our funds and multiplying them rather by developing their trading bots, or other ways.

i have a problem here i dont do any selling monyx or do withdrawal balance for MYX and BTC but why my balance is zero and then why inside withdrawal history i wd my btc balance . and before 7 february i dont have that history so whay i have that history now, can you restore my balance or this do with a bug?

do you have bad security i thing do you have good security with what you said in your platflom and monyx support?

@anasyd0205
I guess someone hacked you account, sold your MYX and withdrew BTC to his wallet. Do you use 2FA, I'm afraid you don't. If you don't use 2FA, and someone hacked your account, Monyx can't help you I guess.

I dont use.I want to buy more monyx but i am still has trauma. But can
expect minus has high price if i buy monyx now?
 Do you use 2FA, I'm afraid you don't. If you don't use 2FA, and
someone hacked your account, Monyx can't help you I guess.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/monyxcoin/monyx-coin/issues/228#issuecomment-366524730,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AiMnFtn9k7aNU6Yl9Hxw8NH0uzczRFpyks5tWERhgaJpZM4SJb77
.


Evaluate names of all tools and perhaps rename them to be more intuitive

Following #830, I will evaluate the names of all tools and perhaps rename them to be more intuitive.

Moving it to a future milestone.

This issue does not apply to FontBakery anymore. Helper scripts were long ago migrated to gftools.


add NERDTree action to copy, paste and rename files

Similar functionality has been added in #912 and #913. This was the reason given for them

Hi, I don't like the new commands because they're controversial in other implementations. There is no standard for them.
At the same time, I found an m command in NERDTree, which also implements some of the mentioned functionality. I think it would be better to hide these operations under m command.

Hello,
for copying files, these filetree neovim plugins have a keybind

lir.nvim
chadtree
neo-tree.nvim
sfm.nvim

With spacevim which is a distribution of vim config
for pasting files, the neovim plugins also have a dedicated keybind

lir.nvim
neo-tree.nvim
drex.nvim

Spacevim too implements a dedicated keybind for pasting files
and for renaming files

neo-tree.nvim
lir.nvim
chadtree
drex.nvim

Spacevim too has a a dedicated keybind for renaming files
Although I do agree that the keybinds which I suggested in my PR are non-conventional as the most appropriate keybinds in my opinion were already used.

@AlexPl292 Sorry for mentioning you, but I wanted to ask if you are okay with the given keybindings or do you want to put these operations under a specified key. In your previous comment you said that the m key is okay for it, but the m is used for triggering the right click menu.

Okay, let's merge these changes, but I'd avoid further updates with the keybindings that are not used in the NERDTree plugin.
The problem is that NERDTree may introduce new commands with the same shortcuts and we'll have to decide if we'd like keep compatibility or support the NERDTree new feature.
If any further similar updates are required, we'll need to find a way that does not potentially conflict with NERDTree.

Reference: https://youtrack.jetbrains.com/issue/VIM-3539/More-NERDTree-commands

Hello,
I understand what you are saying. If we keep on adding extra features to this plugin, we would soon have to decide if to add extra functions or support any new keybinds which nerdtree introduces.
I have an idea to deal with this. How about instead of adding these extra features and binding them to just one key like a, A or z, we select another secondary key which will act as an entry point to all these extra features. If for example we decide that the key is to be ; then our keybinds for extra features would be ;a, ;A or ;z

This actually sounds good to me. We'll need to check if the ; is not already used, however :D

You can select any key other than ; for that. But it should be near the home row for easy usage

Perhaps we could provide the APIs that some of the NERDTree plugins are using so that these can become mini-plugins themselves?

That's pretty much what I mean. Instead of adding a feature that doesn't have a standard definition outside of core NERDTree functionality, we could allow IdeaVim's implementation to be extensible, ideally in much the same way that the original plugin is (whatever that is).


fix: nested groups have correct form names

Contributor checklist

[x] Bug fixes include regression tests

Pull Request Test Coverage Report for Build 08fce52f00af61d3ccd53e79f43b1f8f05639949-PR-54

15 of 20 (75.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.5%) to 52.661%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/ash_phoenix/filter_form/filter_form.ex
15
20
75.0%

Totals

Change from base Build 0478c312705b446f020ffd9bd1b37bd8c2fcacfe:
0.5%

Covered Lines:
1019

Relevant Lines:
1935

💛  - Coveralls


Research how to create documentation for backend

Research how to create documentation for backend

For backend documentation we will use mkdocs. Currently mkdocs is setup on its own branch. Documentation will be automatically created from docstrgins (WIP).

Database documentation will use Google style docstrings, but mkdocs should support all styles w/ plugins.


translate mini workshop 2 doc to japanese (except supplement seciton)

Translated the whole mini workshop 2 content (except supplement section) to Japanese.

@ryamakuchi Thank you for your review.

Will this be translated by another PR?

Yes, we will do it later!


[scf] Pushed SCF support through rest of the Flow/Stream/HAL

Final support required so that SCF is supported through the entire Flow/Stream/HAL pipeline. Just includes a few more cases of recursion into the scf operations.

actually, it'd be worth benchmarking this before landing - since those passes support cf today this PR will actually cause regressions on any model that has scf ops make it down here.

actually, it'd be worth benchmarking this before landing - since those passes support cf today this PR will actually cause regressions on any model that has scf ops make it down here.

Sounds good. I will need to rebase on top of the other CL to verify as it is still blocked at the resource refinement.


Meeting 2021-09-29 patches

The content was pushed straight to the repo. But I thought I'd PR improvements here.

Reviewed. Okay to merge.
No need to PR the initial commit. It is as is. Any changes to the minutes should be rare and minor / basic corrections in following commits or PRs (like this one). It is not perfect but it takes up a lot of time/energy to disseminate the minutes/information in its final form, referring to it etc (e.g., other panels can refer to it). People want to read the minutes sooner than later e.g., if someone misses the meeting, they don't need to hunt through open PRs to find out what happened... and it certainly delays things to review, next steps, or even whether to attend the next meeting or not.
We can improve on scribing if there is something lacking.


Fixed installation of YOLOv7 on GPU

Motivation and context
Resolved #8503
older onnxruntime-gpu is not compatible with numpy > 2.0
one solution is to fix numpy to older version
another solution (in pull request) is to update onnxruntime-gpu
Newest version of onnxruntime-gpu available in PyPI requires Cuda 12
If you have difficulties with setup, try:

To update NVIDIA driver (mine is 566.36)
To update Docker version (mine is 27.4.0)
To update Nvidia Toolkit (mine is 1.17.3)

How has this been tested?

Checklist

[x] I submit my changes into the develop branch
[x] I have created a changelog fragment
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (see GitHub docs)
[ ] I have increased versions of npm packages if it is necessary
(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

Summary by CodeRabbit

New Features

Added a changelog entry for the installation of YOLOv7 on GPU.

Bug Fixes

Updated the configuration for the serverless function to improve performance and compatibility with the latest CUDA and ONNX runtime versions.

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

Project coverage is 73.90%. Comparing base (289ad43) to head (877504d).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #8824      +/-   ##
===========================================
- Coverage    73.93%   73.90%   -0.03%
===========================================
  Files          409      409
  Lines        43930    43930
  Branches      3986     3986
===========================================
- Hits         32478    32465      -13
- Misses       11452    11465      +13

Components
Coverage Δ

cvat-ui
78.36% <ø> (+0.02%)
:arrow_up:

cvat-server
70.07% <ø> (-0.08%)
:arrow_down:


Install new dependencies during plugin update

Version and Platform (required):

Binary Ninja Version: latest
OS: MacOS
OS Version: Monterey
CPU Architecture: M1

Bug Description:
In the plugin manager, when updating a plugin that contains new dependencies, the update process does not install the new dependencies.
Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

Install an old version of the Sidekick plugin
Install a new version of the Sidekick plugin that adds new packages
In the python console, enter "import <new_python_dependency"

Expected Behavior:
I expected during the update process that the new dependencies would be installed.
Currently, the only work around is to uninstall the plugin and re-install it.

Resolved last week, not sure the exact build number.


added error percentage

Instead of a binary complete or throw an error, this will allow a user to set the percent error that could be generated at random to demo error handling

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


Replay mod replay does not open up

Mod Name
ReplayMod
Mod Homepage
https://www.replaymod.com
Minecraft version
1.20.1 (LTS)
Describe the bug
client crashes when loading a replaymod replay.
Steps to reproduce

Go into replays in replayMod, not a singleplayer world.
click on one of them

Logs
https://gist.github.com/vinnyg0621/5396ac7d9d3cc443d176e149ffbcc27d
Additional context
even after installing ffmpeg is does this!

Duplicate of #556


Fixed blob loading

Fix loading of Blobs urls ( https://github.com/oracle/cordova-plugin-wkwebview-file-xhr/issues/35 )
(See https://stackoverflow.com/questions/30864573/what-is-a-blob-url-and-why-it-is-used for what these are and why they are useful)
Signed-off-by: Margus Niitsoo<EMAIL_ADDRESS>

Since we don't accept pull requests. We will be tracking this issue with our internal issue tracker and will further release the plugin with fix.

Hi, Not able to Access blob urls in the latest version


StickyHeaderBehavior causes crash when removing items

Check if adapter position is valid when getting it from a view within the recyclerview and avoid triggering getSectionHeader with an invalid position.
User case (This is also explained within the StickyHeaderBehavior.java file):
When removing items and having sticky header behavior the following happens:
The child at position 0, which is the first VISIBLE view is one of the views that just got removed.
For some reason that view is still alive within the recyclerView(probably computing layout).
When getSectionHeader is trying to access that position within the recyclerViewItems, that position
won't exist since data manager recyclerViewItems linked list just removed the items. That will follow up with an indexOfBoundsException and crash the app.

Codecov Report

Merging #75 into master will decrease coverage by 0.07%.
The diff coverage is 50%.

@@             Coverage Diff              @@
##             master      #75      +/-   ##
============================================
- Coverage     89.26%   89.19%   -0.08%
  Complexity      392      392
============================================
  Files            24       24
  Lines          1099     1101       +2
  Branches        192      193       +1
============================================
+ Hits            981      982       +1
  Misses           52       52
- Partials         66       67       +1

Impacted Files
Coverage Δ
Complexity Δ

...ayfair/brickkit/behavior/StickyHeaderBehavior.java
89.09% <50%> (-1.48%)
23 <0> (ø)

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 197c4dd...3357dae. Read the comment docs.


GPU resource for pretraining and instruction tuning

What an excellent work! Could you please share the GPU requirement (number and memory) for pretraining and instruction tuning? Thanks.

Hello @2000ZRL
Thank you for your interest in our work.
For Video text datasets:
For llama2:
You can use A100 with 80GB with batch size=4 or V100 with batch size=1 (Minimum GPU RAM is 32GB)
For Mistral:
You can only use A100 with 80GB with batch size=1 (Minimum GPU RAM is 80 GB)

Thanks for your reply? Could you please also tell me the training time cost for different model variants, e.g., llama2/mistral

Hello @2000ZRL Thank you for your interest in our work.
For Video text datasets: For llama2: You can use A100 with 80GB with batch size=4 or V100 with batch size=1 (Minimum GPU RAM is 32GB)
For Mistral: You can only use A100 with 80GB with batch size=1 (Minimum GPU RAM is 80 GB)

Hi, when I use multi gpus like 2 piece of L20 (single GPU RAM is 46GB), but I found it still OOM with bs=4. I wonder do we have supportted TP mode for model tuning or just DP supportted?


TypeError exception occurred when toggling dark mode on and off

New Mockup
Please check assets/css/global.css, design-assets folder images, and figma files for updated style guides. Any new pull request should use the updated color, spacing, and sizing variables.
No Bootstrap or jQuery
Please refrain from adding Bootstrap or jQuery to the site. These pr's will be closed. They overwrite global styles. Vanilla CSS and JS is way better now anyways 😊
New Task:
What is the task
Fix TypeError exception. This exception occurred when toggling the dark mode button on and off.
Who is the task for?

[x] I created this task for me to complete, I will create a PR soon.
[ ] I created this task for someone else to claim.
[ ] I think this is a task that multiple people can do

Confirm all of the following:

[x] I have looked at all the issues currently available and this does not exist or overlap with another ticket

⚠ PLEASE ONLY SUBMIT A PR FOR THIS TASK IF THIS TASK WAS AVAILABLE FOR YOU TO CLAIM

Dark mode needs a complete overhaul. Are you just fixing the error?

This is not the issue. Creating a new issue for dark mode overhaul.

Yes, I was trying to fix the errors displayed on the console when toggling between dark mode and light mode. There are lines that call the style property of elements that no longer exist because they were removed in the index.html


Allow to specify service name and endpoint IP for zipkin tracing

This patch allows to specify service name and hostPort for zipkin tracing.
Currently the serviceName(display in the console) and
host(endpoint) must be same name.
This patch allows to specify both serviceName and host.
Please also refer to https://github.com/knative/serving/pull/8069.

/assign @mattmoor

/assign @mdemirhan
Could you please take a look?

/assign @mattmoor

@mattmoor Could you please take a look at this? Current zipkin/jaeger tracing does not register the endpoint IP, so it is not possible to find the endpoint pod we want to investigate. This patch can change the IP tag from service's to endpoint's.
Current output:

@mattmoor friendly ping.

/approve


@vectorize-decorated functions are not found by sphinx

[x] I am using the latest released version of Numba (most recent is visible in
the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[ ] I have included below a minimal working reproducer (if you are unsure how
to write one see http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports).

I use sphinx with the apidoc extension to have a reference documentation generated automatically.
For functions decorated with njit this works without any complications, for vectorize however, the function disappears from the docs, indicating that apidoc either cannot find it or decides not to include it. (Sorry for the lack of better info).
Since this is sphinx related I am not sure how to include a minimal example, but if it would help and I find some time I can try to set up a mini-repository.

@HPLegion thanks for submitting this. I'm afraid, w/o a reproducer this will be difficult to triage. Perhaps you could make a patch against the Numba source tree (which also uses sphinx for documentation) to expose the issue? Or if you have this in an open-source project, perhaps link to it? Perhaps you could try messing with different versions of sphinx/apidoc and see if the issue vanishes? Sorry I don't have any better ideas here.

I have gotten around to construct a small example #5765. In that process I also realised that the problem does not lie with sphinx apidoc (which just creates the skeleton) but with autodoc, which generates the actual reference documentation.

Okay, after stepping through sphinx I think I narrowed it down to the following:
njit functions have the __wrapped__ attribute which I suppose contains the original python function. Sphinx can resolve this.
This field does not exist for vectorize, hence autodoc thinks that it cannot document the function and skips it (it is not rejected based on any filters as far as I can tell, sphinx just autodoc just gives up)

Some more digging has revealed that njit functions get documented by autodoc because

they are a methoddescriptor
& have the python function in __wrapped__
& have the correct __module__ string.

>>> from numba import njit
>>> import inspect
>>> @njit
... def f(x):
...     return x
...
>>> f(1)
1
>>> inspect.isfunction(f)
False
>>> inspect.ismethoddescriptor(f)
True
>>> inspect.isroutine(f)
True
>>> hasattr(f, "__wrapped__")
True
>>> f.__module__
'__main__'
>>> f.__qualname__
'f'
>>> f.__wrapped__
<function f at 0x7f0b87558830>

>>> from numba import vectorize
>>> import inspect
>>> @vectorize
... def g(x):
...     return x
...
>>> g(1)
1
>>> inspect.isfunction(g)
False
>>> inspect.ismethoddescriptor(g)
False
>>> inspect.isroutine(g)
False
>>> hasattr(g, "__wrapped__")
False
>>> g.__module__
'numba.np.ufunc.dufunc'
>>> g.__qualname__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'DUFunc' object has no attribute '__qualname__'
>>> g.__wrapped__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'DUFunc' object has no attribute '__wrapped__'

@HPLegion good to see you are getting somewhere investigating this. Do you think there might be a way to adapt this technique for @vectorize too?

Yes, I think so.
TL;DR: I tried and numba hasn't exploded
A few thoughts

I was scratching my head on whether the dispatchers should appear to be functions, so I went and checked out lru_cache from functools to get a similar wrapper-example from the standard library. It turns out that functions decorated with lru_cache do not pass the isfunction check, they are indeed also methoddescriptors - so being a methoddescriptor seems like a reasonable choice for a decorated function
As expected lru_cache uses update_wrapper to set its own fields to the appropriate values.
It is hence very much comparable to the jit Dispatcher and both of them seem to get documented just fine
I imagine (without any actual arguments) that it may generally be advantageous (not just for sphinx) if numba's decorators are relatively transparent and follow what seems to be the conventions of filling the respective __magic__  attributes
Ideally one would use update_wrapper for a clean and standardized propagation of the decorated function attributes and implement __get__ but not __set__ for vectorize (and maybe even further dispatchers), but this raises some questions

Are there downsides to being a methoddescriptor? Would there be a promise about certain functionality that cannot be upheld
update_wrapper sets a number of attributes, but by default also updates the entire __dict__, this smells like a possibility for unforseen consequences (but it could be disabled)
Are any of ('__module__', '__name__', '__qualname__', '__doc__', '__annotations__') crticial within numba and could break it if they were changed.

Experiment
Yesterday I set up a small branch where I simply called update_wrapper(self, py_func) in the DUFunc constructor and copied the __get__ implementation from the jit Dispatcher. As far as I can tell that resulted in sphinx succesfully documenting vectorize-decorated functions, but I did not stress test it. There seems to be a plethora of Dispatchers for different targets and different ways to construct them so I am sure that this simple tweak did not fix all of them. However the good news is that it does not seem like I broke much in the process; all tests in tests/npyufunc passed (I hope that was the right test set to focus on :stuck_out_tongue: )
References
lru_cache calling update_wrapper
https://github.com/python/cpython/blob/4649202ea75d48e1496e99911709824ca2d3170e/Lib/functools.py#L765
update_wrapper
https://github.com/python/cpython/blob/4649202ea75d48e1496e99911709824ca2d3170e/Lib/functools.py#L33-L50

I had some time yesterday and found myself thinking that bending the inner workings of numba for the sake of sphinx may not be the way to go (even though there may or may not be other advantages to this). So I had a bit of a look for ways to fixing my problem and got inspired by celery - they are offering a small sphinx extension as part of their package to allow auto-documentation of Celery (decorated) tasks.
The advantage to such an approach could be that it actually offers the possibility to customise the documentation behaviour. I hacked together a proof of concept, and it is not too terrifying, luckily Sphinx has a fairly comfortable extension API (but debugging event-driven programs turns out to be a nightmare :fearful:).
Here is a plaintext example of what could be done in principle. The documenter (see below) adds a prefix (@numba.vectorize) to the signature and injects information about the precompiled signature into the docstring.
@numba.vectorize ebisim.plasma.clog_ei(Ni, Ne, kbTi, kbTe, Ai, qi)

      *Precompiled signatures:[‘dddddl->d’]*

   The coulomb logarithm for ion electron collisions.

   Parameters:
      * **Ni** (*float** or **numpy.ndarray*) – <1/m^3> Ion density.

      * **Ne** (*float** or **numpy.ndarray*) – <1/m^3> Electron
        density.

      * **kbTi** (*float** or **numpy.ndarray*) – <eV> Ion
        temperature.

      * **kbTe** (*float** or **numpy.ndarray*) – <eV> Electron
        temperature.

      * **Ai** (*float** or **numpy.ndarray*) – Ion mass number.

      * **qi** (*int** or **numpy.ndarray*) – Ion charge state.

   Returns:
      Ion electron coulomb logarithm.

   Return type:
      float or numpy.ndarray

Is an extension like this something that could be interesting to feature in numba, or is it just too likely to become a maintenance liability? :stuck_out_tongue: (The code as it is right now would likely need some bulletproofing.)
From my side this issue can be closed, since I found a solution that is working for me but if you want to keep this open to track the feature request, that's fine.
Extension code
"""
This sphinx extension aims to improve the documentation of numba-decorated
functions. It it inspired by the design of Celery's sphinx extension
'celery.contrib.sphinx'.

Usage
-----

Add the extension to your :file:`conf.py` configuration module:

.. code-block:: python

    extensions = (...,
                  'numbadoc')

This extension adds two configuration fields, which determine the prefix
printed before jitted functions in the reference documentation.
Overwrite these values in your :file:`conf.py` to change this behaviour

.. code-block:: python

    #defaults
    numba_jit_prefix =<EMAIL_ADDRESS>    numba_vectorize_prefix =<EMAIL_ADDRESS>
With the extension installed `autodoc` will automatically find
numba decorated objects and generate the correct docs.

If a vecotrized function with fixed signatures is found, these are injected
into the docstring.
"""
from typing import List, Iterator
from sphinx.domains.python import PyFunction
from sphinx.ext.autodoc import FunctionDocumenter

from numba.core.dispatcher import Dispatcher
from numba.np.ufunc.dufunc import DUFunc

class NumbaFunctionDocumenter(FunctionDocumenter):
    """Document numba decorated functions."""

    def import_object(self) -> bool:
        """Import the object given by *self.modname* and *self.objpath* and set
        it as *self.object*.

        Returns True if successful, False if an error occurred.
        """
        success = super().import_object()
        if success:
            # Store away numba wrapper
            self.jitobj = self.object
            # And bend references to underlying python function
            if hasattr(self.object, "py_func"):
                self.object = self.object.py_func
            elif hasattr(self.object, "_dispatcher") and \
                 hasattr(self.object._dispatcher, "py_func"):
                self.object = self.object._dispatcher.py_func
            else:
                success = False
        return success

    def process_doc(self, docstrings: List[List[str]]) -> Iterator[str]:
        """Let the user process the docstrings before adding them."""
        # Essentially copied from FunctionDocumenter
        for docstringlines in docstrings:
            if self.env.app:
                # let extensions preprocess docstrings
                # need to manually set 'what' to FunctionDocumenter.objtype
                # to not confuse preprocessors like napoleon with an objtype
                # that they don't know
                self.env.app.emit('autodoc-process-docstring',
                                  FunctionDocumenter.objtype,
                                  self.fullname, self.object,
                                  self.options, docstringlines)
            # This block inserts information about precompiled signatures
            # if this is a precompiled vectorized function
            if getattr(self.jitobj, "types", []) and \
               getattr(self.jitobj, "_frozen", False):
                s = "| *Precompiled signatures:" + str(self.jitobj.types) + "*"
                docstringlines.insert(0, s)
            yield from docstringlines

class JitDocumenter(NumbaFunctionDocumenter):
    """Document jit/njit decorated functions."""

    objtype = 'jitfun'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        return isinstance(member, Dispatcher) and hasattr(member, 'py_func')

class VectorizeDocumenter(NumbaFunctionDocumenter):
    """Document vectorize decorated functions."""

    objtype = 'vecfun'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        return isinstance(member, DUFunc) and \
               hasattr(member, '_dispatcher') and \
               hasattr(member._dispatcher, 'py_func')

class JitDirective(PyFunction):
    """Sphinx jitfun directive."""

    def get_signature_prefix(self, sig):
        return self.env.config.numba_jit_prefix

class VectorizeDirective(PyFunction):
    """Sphinx vecfun directive."""

    def get_signature_prefix(self, sig):
        return self.env.config.numba_vectorize_prefix

def setup(app):
    """Setup Sphinx extension."""
    # Register the new documenters and directives (autojitfun, autovecfun)
    # Set the default prefix which is printed in front of the function signature
    app.setup_extension('sphinx.ext.autodoc')
    app.add_autodocumenter(JitDocumenter)
    app.add_directive_to_domain('py', 'jitfun', JitDirective)
    app.add_config_value('numba_jit_prefix'<EMAIL_ADDRESS>True)
    app.add_autodocumenter(VectorizeDocumenter)
    app.add_directive_to_domain('py', 'vecfun', VectorizeDirective)
    app.add_config_value('numba_vectorize_prefix'<EMAIL_ADDRESS>True)

    return {
        'parallel_read_safe': True
    }

(ping @esc )

Hi, thank you very much for this extension, but my decorated functions still don't appear in the docs. The only change I made is using @cuda.jit instead of @numba.jit with this line in conf.py:
numba_jit_prefix =<EMAIL_ADDRESS>
Do you have any idea why it doesn't work in this case?

Hej @soleti,
it's been a few days since I bashed this together, but my best guess at the moment is the following:
The Documenter classes have a method can_document_member which sphinx uses to determine the extensions ability to deal with certain objects.
As they are written now, they probably simply return False for CUDA jit functions.
I see two possiblefixes here:

Either copy the jit-documenter stuff and adjust it for cuda (that way you can also tweak how certain things get documented, if there is any additional things you want to have written down for cuda stuff)
Or try to hack the jit-documenter into claiming it can document CUDA-jit functions (but since I don't know the CUDA part of numba I don't know if the tweaks I used for normal jit functions work there)

Let me know if that helps, and if yes, feel free to share your results here for future reference (if I have time one day, I may turn this into a tiny package, but more likely I will just document it in a better place (i.e. Luk's How-to-numba-repo))

I tried adapting the jit-documenter stuff but I couldn't get it to work. I adopted a solution that I am ashamed of but that works: running this before sphinx :)
find mypackage/ -name '*.py' -exec sed -i -e 's/@cuda/#@cuda/g' {} \;

Hi @soleti,
For me the following seems to work, feel welcome to give it a test spin and if yes expand on it.
(full disclaimer: I don't really know numba.cuda at all, so I am not aware if my check for CUDA funcs is even remotely sufficient or what nice gimmicks would be for documenting CUDA functions, also my Laptop has no GPU, so I only checked this without ever actually triggering the compilation of the CUDA decorated function)

Same sphinx extension as before with added cuda features:
(You need to make sure that Sphinx loads this, by both adding it to the conf.py and making sure that it is actually on the current path for sphinx to find the module and import it, I called the file numbadoc.py (hence the suggested extension name in the docstring)
"""
This sphinx extension aims to improve the documentation of numba-decorated
functions. It it inspired by the design of Celery's sphinx extension
'celery.contrib.sphinx'.

Usage
-----

Add the extension to your :file:`conf.py` configuration module:

.. code-block:: python

    extensions = (...,
                  'numbadoc')

This extension adds two configuration fields, which determine the prefix
printed before jitted functions in the reference documentation.
Overwrite these values in your :file:`conf.py` to change this behaviour

.. code-block:: python

    #defaults
    numba_jit_prefix =<EMAIL_ADDRESS>    numba_vectorize_prefix =<EMAIL_ADDRESS>    numba_cuda_jit_prefix =<EMAIL_ADDRESS>
With the extension installed `autodoc` will automatically find
numba decorated objects and generate the correct docs.

If a vecotrized function with fixed signatures is found, these are injected
into the docstring.
"""
from typing import List, Iterator
from sphinx.domains.python import PyFunction
from sphinx.ext.autodoc import FunctionDocumenter

from numba.core.dispatcher import Dispatcher
from numba.np.ufunc.dufunc import DUFunc
from numba.cuda.compiler import AutoJitCUDAKernel

class NumbaFunctionDocumenter(FunctionDocumenter):
    """Document numba decorated functions."""

    def import_object(self) -> bool:
        """Import the object given by *self.modname* and *self.objpath* and set
        it as *self.object*.

        Returns True if successful, False if an error occurred.
        """
        success = super().import_object()
        if success:
            # Store away numba wrapper
            self.jitobj = self.object
            # And bend references to underlying python function
            if hasattr(self.object, "py_func"):
                self.object = self.object.py_func
            elif hasattr(self.object, "_dispatcher") and \
                 hasattr(self.object._dispatcher, "py_func"):
                self.object = self.object._dispatcher.py_func
            else:
                success = False
        return success

    def process_doc(self, docstrings: List[List[str]]) -> Iterator[str]:
        """Let the user process the docstrings before adding them."""
        # Essentially copied from FunctionDocumenter
        for docstringlines in docstrings:
            if self.env.app:
                # let extensions preprocess docstrings
                # need to manually set 'what' to FunctionDocumenter.objtype
                # to not confuse preprocessors like napoleon with an objtype
                # that they don't know
                self.env.app.emit('autodoc-process-docstring',
                                  FunctionDocumenter.objtype,
                                  self.fullname, self.object,
                                  self.options, docstringlines)
            # This block inserts information about precompiled signatures
            # if this is a precompiled vectorized function
            if getattr(self.jitobj, "types", []) and \
               getattr(self.jitobj, "_frozen", False):
                s = "| *Precompiled signatures:" + str(self.jitobj.types) + "*"
                docstringlines.insert(0, s)
            yield from docstringlines

class JitDocumenter(NumbaFunctionDocumenter):
    """Document jit/njit decorated functions."""

    objtype = 'jitfun'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        return isinstance(member, Dispatcher) and hasattr(member, 'py_func')

class VectorizeDocumenter(NumbaFunctionDocumenter):
    """Document vectorize decorated functions."""

    objtype = 'vecfun'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        return isinstance(member, DUFunc) and \
               hasattr(member, '_dispatcher') and \
               hasattr(member._dispatcher, 'py_func')

class CUDAJitDocumenter(NumbaFunctionDocumenter):
    """Document jit/njit decorated functions."""

    objtype = 'cudajitfun'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        return isinstance(member, AutoJitCUDAKernel)\
               and hasattr(member, 'py_func')

class JitDirective(PyFunction):
    """Sphinx jitfun directive."""

    def get_signature_prefix(self, sig):
        return self.env.config.numba_jit_prefix

class VectorizeDirective(PyFunction):
    """Sphinx vecfun directive."""

    def get_signature_prefix(self, sig):
        return self.env.config.numba_vectorize_prefix

class CUDAJitDirective(PyFunction):
    """Sphinx jitfun directive."""

    def get_signature_prefix(self, sig):
        return self.env.config.numba_cuda_jit_prefix

def setup(app):
    """Setup Sphinx extension."""
    # Register the new documenters and directives (autojitfun, autovecfun)
    # Set the default prefix which is printed in front of the function signature
    app.setup_extension('sphinx.ext.autodoc')
    app.add_autodocumenter(JitDocumenter)
    app.add_directive_to_domain('py', 'jitfun', JitDirective)
    app.add_config_value('numba_jit_prefix'<EMAIL_ADDRESS>True)
    app.add_autodocumenter(VectorizeDocumenter)
    app.add_directive_to_domain('py', 'vecfun', VectorizeDirective)
    app.add_config_value('numba_vectorize_prefix'<EMAIL_ADDRESS>True)
    app.add_autodocumenter(CUDAJitDocumenter)
    app.add_directive_to_domain('py', 'cudajitfun', CUDAJitDirective)
    app.add_config_value('numba_cuda_jit_prefix'<EMAIL_ADDRESS>True)

    return {
        'parallel_read_safe': True
    }

Hey @HPLegion thank you very much for this. However, I get this error message
Could not import extension numbadoc (exception: cannot import name 'AutoJitCUDAKernel' from 'numba.cuda.simulator.compiler' (/usr/local/lib/python3.8/site-packages/numba/cuda/simulator/compiler.py))

which I think it's because I am running it on a machine without a GPU. Replacing it with FakeCUDAKernel fixes the error, but the functions still don't appear in the docs.

that's a curious one, cause my laptop does not have a GPU (and that is where I tested). Which version of numba are you running?
Does this work for you (or does it show a different type)?
In [1]: from numba.cuda import jit as cjit

In [2]: @cjit
   ...: def f(a, b):
   ...:     return a+b
   ...:

In [3]: type(f)
Out[3]: numba.cuda.compiler.AutoJitCUDAKernel

AutoJitCUDAKernel was removed in 0.51 - it is now cuda.compiler.Dispatcher: https://github.com/numba/numba/blob/master/numba/cuda/compiler.py#L773 - this is part of bringing the CUDA target into line with the CPU target.

Sweet, that will likely be the reason (I am still running 0.50.0 locally)
@soleti if you are running 0.51+ just exchange the AutoJitCUDAKernel to the cuda Dispatcher (both import and in CUDAJitDocumenter.can_document_member)

Uhm it still doesn't work.
I am doing
from numba.cuda.compiler import Dispatcher as CUDADispatcher

which gives me
Extension error:
Could not import extension numbadoc (exception: cannot import name 'Dispatcher' from 'numba.cuda.simulator.compiler' (/usr/local/lib/python3.8/site-packages/numba/cuda/simulator/compiler.py))

Hey! Thank you for the extension for autodoc. I wanted to add, for future people searching this, that this doesn't work with numba cuda device functions specifically, only kernels. To fix this, add this
from numba.cuda.compiler import DeviceFunctionTemplate
and change this
`class CUDAJitDocumenter(NumbaFunctionDocumenter):
"""Document jit/njit decorated functions."""
objtype = 'cudajitfun'

@classmethod
def can_document_member(cls, member, membername, isattr, parent):
    return isinstance(member, AutoJitCUDAKernel)\
           and hasattr(member, 'py_func')`

to
`class CUDAJitDocumenter(NumbaFunctionDocumenter):
"""Document jit/njit decorated functions."""
objtype = 'cudajitfun'

@classmethod
def can_document_member(cls, member, membername, isattr, parent):
    return (isinstance(member, AutoJitCUDAKernel) and hasattr(member, 'py_func')) or isinstance(member, DeviceFunctionTemplate)`

Hope this helps someone, and thanks again!

@HPLegion, thanks for the sphinx extension for autodoc. I tried to change it to work with autosummary + @intrinsic:
import numba
from typing import List, Optional
from sphinx.ext.autodoc import FunctionDocumenter

class NumbaDocumenter(FunctionDocumenter):
    """Sphinx directive that also understands numba decorators"""

    objtype = 'function'  # This must be assigned to 'function' to work!!
    directivetype = 'function'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        if isinstance(member, numba.core.extending._Intrinsic):
            return True
        return super(RBCDocumenter, cls).can_document_member(member, membername, isattr, parent)

def setup(app):
    """Setup Sphinx extension."""

    # Register the new documenters and directives (autojitfun, autovecfun)
    # Set the default prefix which is printed in front of the function signature
    app.setup_extension('sphinx.ext.autodoc')
    app.add_autodocumenter(NumbaDocumenter)

    return {
        'parallel_read_safe': True
    }

Also, in order for this to work, one needs to update the intrinsic wrapper:
import functools
functools.update_wrapper(my_intrinsic, my_intrinsic._defn)  # _defn is the inner function

Hi @HPLegion, thanks for the extension! Any idea on how to extend it to support @guvectorize-decorated functions?

Hi @HPLegion, thanks for the extension! Any idea on how to extend it to support @guvectorize-decorated functions?

Here's my version of the extension that handles @guvectorized functions, if anyone's interested:
https://github.com/legend-exp/pygama/blob/f980faa5322aac1de12b5817b1d33c3248e399b5/docs/source/extensions/numbadoc.py

I am buried in other work at the moment, but with the collection as it is, this almost looks as if it might warrant releasing a micro-package that people can install or vendor directly into their codebase. If anyone feels the urge to create such a thing, I would certainly not hold a grudge :-P
Just had a brief look at the issue @gmarkall cross linked yesterday, seems like there are still issues linked to the missing magic wrapper information. Is there a dedicated issue for that?

Hi all. Found a simple way to document the Numba classes and methods in my code. Basically, I just added the following line to the Sphinx conf.py (effectively disabling the JIT compilation, and allowing Sphinx autodoc to properly parse all functions and classes):
os.environ["NUMBA_DISABLE_JIT"] = '1'

Hello all,
I am adjusting/improving/cleaning up the documentation (pr#160) for a python package. However, I have been struggling with documenting jit-decorated functions. I am using autosummary extension to generate recursively a page for every module/class/function (see SO#2701998 )
I have tried all the solutions mentioned here:

Adding os.environ["NUMBA_DISABLE_JIT"] = '1' to the conf.py does nothing ;
the autodoc extensions by @HPLegion, @gipert, @guilhermeleobas all return warnings and errors like  the following

WARNING: [autosummary] failed to import sarkas.potentials.
Possible hints:
* AttributeError: module 'sarkas' has no attribute 'potentials'
* ImportError:
* TypeError: Failed in nopython mode pipeline (step: nopython frontend)

and/or
Failed to import sarkas.potentials.
Possible hints:
* AttributeError: module 'sarkas' has no attribute 'potentials'
* TypeError: Failed in nopython mode pipeline (step: nopython frontend)
issubclass() arg 2 must be a class or tuple of classes

Somehow it can't read the submodules anymore?
I am using Sphinx v4.5.0, but I have also tried Sphinx v6.2.1 and  v7.2.6 with the same results.
I don't really understand what I am doing wrong any help is highly appreciated.

@SilvestriStefano
Hi,
unfortunately, it has been a while since I have thought about this, so it is a bit tricky to give good advice. However: Those errors do not look like sphinx problems. It looks like there is actually a problem with the package you are documenting.
Cheers

Hello @HPLegion ,
thanks for responding. The issue only arises whenever I add the extra extension in the conf.py. Otherwise the documentation builds fine without warnings, except that the module functions are not present (see below)

The conf.py with the extension looks like :
import os
import sys

import sarkas

sys.path.insert(0, os.path.abspath("../sarkas"))
sys.path.insert(0, os.path.abspath("../sarkas/time_evolution"))
sys.path.insert(0, os.path.abspath("../sarkas/utilities"))
sys.path.insert(0, os.path.abspath("../sarkas/potentials"))
sys.path.insert(0, os.path.abspath("../sarkas/tools"))
sys.path.insert(0, os.path.abspath("./_ext"))        # <-------- this is where the extension file is located

extensions = [
    "sphinx.ext.napoleon",
    "sphinx.ext.autodoc",
    "sphinx.ext.autosummary",
    "numbadecoratordoc"                  # <-------- how i called the file
]

# ... more stuff ...

autodoc_mock_imports = ["yaml", "numba", "scipy", "optparse", "time", "pyfftw", "pyfiglet", "tqdm", "fmm3dpy"]

# Generate the API documentation when building
autosummary_generate = True
autosummary_generate_overwrite = True
# # A list of ignored prefixes for module index sorting.
modindex_common_prefix = ["sarkas."]

# Make sure the target is unique
autosectionlabel_prefix_document = True

# Napoleon settings
napoleon_google_docstring = False
napoleon_numpy_docstring = True
napoleon_include_init_with_doc = False
napoleon_include_private_with_doc = False
napoleon_include_special_with_doc = True
napoleon_use_admonition_for_examples = False
napoleon_use_admonition_for_notes = False
napoleon_use_admonition_for_references = False
napoleon_use_ivar = True
napoleon_use_param = False
napoleon_use_rtype = False

Hello again @HPLegion ,
I have done a little debugging and i found out a few things:

the warnings I mentioned above are because in some instances we add signature specifications to the decorator. Sometimes (see the create_cells_array() in the screen of my previous comment) they can create more problems like

Untyped global name 'zeros': Cannot determine Numba type of <class 'builtin_function_or_method'>

File "../sarkas/potentials/force_pp.py", line 538:
def create_cells_array(box_lengths, cutoff):
    <source elided>

    cells_per_dim = zeros(3, dtype=int64)

It is not a big problem (to us anyway) as apparently we can go without the signature specifications.

if I only use the decorators @jit(nopython=True) or @njit I get no errors and no warnings, however the decorated functions are still not appearing in the doc.
If I modify the JitDocumenter class method can_document_member as follows

@classmethod
def can_document_member(cls, member, membername, isattr, parent):
    return isinstance(member, Dispatcher) and hasattr(member, 'py_func') and member.__doc__ is None

the decorated functions whose docstring is not empty do appear in the docs but without the prefix. I am confused as why this works though.

Hi Stefano (and others)
I just wanted to give you a heads-up that I won't be able to follow up on these issues myself for a while, unfortunately. I would like to offer more help, but time is limited at the moment.
I expect documentation to fail without the plugin (as you observed), since Sphinx gets confused by numba's decorators. I don't know why you see the flaky behviour in some cases though.
When I first looked into this, I really had to debug the Sphinx autodoc run to see why the documenters did not pick up on the decorated functions, and then I tried to come up with something that would be able to identify the decorated functions as more or less normally documentable objects. Then I used the chance to sprinkle in a few extras, maybe some of that broke over the last years. It is not particularly fun, but maybe a way for follow up investigations.
In the meantime I would encourage you to write on https://numba.discourse.group/ - there is a chance you will be able to get in touch with some knowledgable people who are not aware of this issue / disucussion. Judging by how lively this thread still is, this seems to affect a number of users. Maybe someone has the time and energy to really dive into this and come up with a good and maintainable  lonterm solution :-)
Best of luck!

At the moment we are satisfied with how it works. However, I would prefer to understand the flaky behavior, so I will probably bug the people on discourse :P
Thank you for all your help :)


implement MinerConfig scheme for ePIC UMC

Now that the new MinerConfig scheme has been implemented, transition the ePIC UMC API to use the new config and give the ability to change settings. Just creating the feature request for tracking
May need some guidance @UpstreamData on your preferred way or thinking of how this should be implemented. My thoughts are to start with simply with changing the pool config which should be straightforward, then I can use that template/guidance to start implementing things like PerpetualTune (autotune settings).
Please assign this issue to me, will work to get this implemented and tested

It may be easiest to start with trying to go from a config on a miner to the MinerConfig by implementing the from_epic method on each part of the config.  It will also need to be added as a type hinting method to the classes in config/base.py.
I think there's going to be a similar issue with this and BOS+ GRPC, as well as slightly less severe with whatsminers, which is that config options are spread across different endpoints, so what I would suggest is that MinerConfig.as_epic() returns a dict with data for different commands to use.  For example, as_wm() returns a dict with pools and tuning, which is a dict with mode set to either normal, low, high, or power_tune, with the power_tune dict having the power limit added.
Hopefully this all makes sense.  Also, if you're on telegram, you can reach out to me directly there at b_rowan if you have questions or need help with any of that.

Fixing another issue with MinerConfig right now, so I'll add the base implementation as it's just passing anyway.

Thanks for that, will take a look. I think what you proposed makes a lot of sense. Thanks for adding that. Will probably reach out on telegram as well but will give it a first go.

#84 merged, part 1 of the support is done.

Finished in #101.


pip package setup

You are installing a module via pip from inside your script (unconditionally) While there is no real harm in it, the better way would be to make your own program installable and define "esptool" as a dependency.
http://peterdowns.com/posts/first-time-with-pypi.html
You can "pip install" a module directly from github but uploading to PyPI is the easier option.

I tried your link, but apparently distutils can not add dependencies so I used setuptools. It should work now.
Maybe someone/you can try it and if it works I can close the issue 😄

I'm sorry, I've posted the first google result to point you in a direction. Setuptools is the way to go! Probably the better link would have been: https://packaging.python.org/distributing/
Did you already upload to PyPI?
I'll not be able to test with real hardware before Saturday. Stay tuned ;)

Yes the latest release should be uploaded


feat: Add irsa_tag_values variable

Description

Describe your changes in detail

Add irsa_tag_values variable for more control over the generated IAM policy.
Motivation and Context

Why is this change required? What problem does it solve?

This allows karpenter to be used in a setup where the EKS cluster and VPC subnets do not have matching karpenter.sh/discovery tags.  An example is using an existing VPC and launching multiple EKS clusters for testing with the same VPC.
Currently, the KarpenterIRSA-* IAM role creates an IAM policy that contains a IAM permission that restricts ec2:RunInstances, ec2:TerminateInstances, ec2:DeleteLaunchTemplates to restrict based on karpenter.sh/discovery": "${CLUSTER_NAME}", something like this:
        {
            "Action": [
                "ec2:TerminateInstances",
                "ec2:DeleteLaunchTemplate"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/karpenter.sh/discovery": "${CLUSTER_NAME}"
                }
            },
            "Effect": "Allow",
            "Resource": "*",
            "Sid": ""
        },
        {
            "Action": "ec2:RunInstances",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/karpenter.sh/discovery": "${CLUSTER_NAME}"
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:ec2:*:11111111111:launch-template/*",
            "Sid": ""
        },

Source: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/0f9d9fac93caf239386f47b0f117706ea78c2bec/modules/karpenter/main.tf#L89-L115
So we cannot use an existing VPC with an existing subnet tag. IE: We cannot use VPC with subnet tags karpenter.sh/discovery=my-subnet-tag with multiple EKS clusters. Karpenter isn't permitted to successfully launch new nodes, due to the IAM permission assumption.

If it fixes an open issue, please link to the issue here.

Searched and did not find related issues.
Breaking Changes

Does this break backwards compatibility with the current major version?

Nope

How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

Ran the examples/karpenter and confirmed it works as a regression test.

Please describe how you tested your changes

Tested with an existing VPC with existing subnet tags, deployed EKS cluster, and deployed karpenter. Something like this:
module "karpenter" {
  source = "/path/to/modules/eks/modules/karpenter"

  cluster_name           = module.eks.cluster_name
  irsa_oidc_provider_arn = module.eks.oidc_provider_arn

  # Set new variable
  irsa_tag_values = ["my-subnet-tag"]
}

Scaled up a deployment to trigger Karpenter to add nodes. Confirmed that the nodes register successfully.

[x] I have executed pre-commit run -a on my pull request

Click to see pre-commit run -a results:
$ pre-commit run -a
Terraform fmt............................................................Passed
Terraform validate.......................................................Passed
Terraform docs...........................................................Passed
Terraform validate with tflint...........................................Passed
check for merge conflicts................................................Passed
fix end of files.........................................................Passed

This PR is included in version 19.14.0 :tada:


Bumping to 5.8.2

Signed-off-by: Matthias Wessendorf<EMAIL_ADDRESS>Motivation:
using the latest of junit jupiter
Conformance:
Your commits should be signed and you should have signed the Eclipse Contributor Agreement as explained in https://github.com/eclipse/vert.x/blob/master/CONTRIBUTING.md
Please also make sure you adhere to the code style guidelines: https://github.com/vert-x3/wiki/wiki/Vert.x-code-style-guidelines

I've contributed to vert.x before: https://github.com/vert-x3/vertx-kafka-client/commits?author=matzew

I updated the commit, using my Apache email address - which I think I used for Eclipse (instead of my RHT one)

@vietj @jponge  any idea on this "ECA" thing? or mind to do the bump yourself

Most likely the Eclipse bot not recognising your email as that of an Eclipse Contributor.
You have 2 options:
create an Eclipse account if you don’t have one, and sign it, or
just consider that since you are a Red Hat employee you are already covered (perhaps signing your commits with your Red Hat email is best)

@jponge I have now signed it via the Red Hat Email. And I have done contributions to vert.x before (as a RHT employee), so I must be covered, one way or the other

Great!

I'll ignore that ECA check


[WIP] - Added public ipfs dockerfile

Closes #258 .
@voodoohop do you have any idea how should we deal with private key?

@voodoohop one idea from my side is to put them through ENV, the same goes for nft.storage keys


Error Message Pops Up Every Time the Code is Saved

Prerequisites

[X] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: https://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: https://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
Error message pops up every time the code is saved.
Steps to Reproduce

Make a grammar mistake like only typing the beginning of a multi-line string """ . An error will pop up if you save it. (Or use a autosave package)

Keep typing and saving. The same error will pop up again.

Expected behavior:
The error message should only pop up once when using a autosave package, and it should be in somewhere like the menu bar that will not block the editor.
Actual behavior:
The same error message pops up multiple times when you press save or uses a autosave package and it blocks the code and editor.
Reproduces how often:
When you have a mistake in the file and uses a autosave package.
Versions
autosave-onchange package
Atom    : 1.40.1
Electron: 3.1.10
Chrome  : 66.0.3359.181
Node    : 10.2.0

apm  2.4.3
npm  6.2.0
node 10.2.1 x64
atom 1.40.1
python 2.7.16
git 2.21.0

macOS Catalina 10.15 Beta 8 (19A558d)

I used a autosave package and I didn't realize


cloud 9 compatibility?

Curious to know if I can use restify with the cloud 9 debugger since that is the IDE I use.
Currently cloud 9 gives me the error
lazy symbol binding failed: Symbol not found: __ZN2v82V815MarkIndependentEPPNS_8internal6ObjectE
Referenced from: /Users/Mike/documents/projects/test/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.node
Expected in: flat namespace

Oh, this is probably also fixed by #100 now (although it will require npm 1.1.5).


Fix model counting

The instance counting was bugged which caused multiple issues in CI.
Instead of just fixing it, I changed it to counting loaded models, instead of created pipelines because it better fits the semantics of release_after_unload option and might save us from unnecessary memory release, when pipelines are temporarily created and destroyed.

CI MESSAGE: [13030483]: BUILD STARTED

CI MESSAGE: [13034380]: BUILD STARTED

CI MESSAGE: [13030483]: BUILD PASSED


OCPBUGS-44703: Invalidate registry cache before inspection of pods

Registry config is cached by the container image library. Invalidate the cache each time we inspect images for a pod in the case of any updates.
A follow up refinement to this should be to only invalidate cache when the MCP has been updated for optimization.

/retest

/test ?

/override x

/override "Red Hat Konflux / multiarch-tuning-operator-enterprise-contract / multiarch-tuning-operator"

/cherry-pick v1.0


CI for Node

✕ Contains the compiled JavaScript (4 ms)
✕ Starts the game with a random player (1 ms)
✕ Initializes with two players (2 ms)
✕ Sets the current player to be whoever it is not (1 ms)


Podman: fail to build images for other platforms

Describe the bug
Podman supports building packages for other platforms through build command like:
podman build --platform linux/amd64,linux/arm64 --manifest image-name .

Running this command will result in the following error (suppose sh used in the Dockerfile):
exec container process `/bin/sh`: Exec format error

This is because building images for another platform requires qemu-user-static package as said in the doc, which can't be found in nixpkgs.
Steps To Reproduce
Steps to reproduce the behavior:

Create a Dockerfile to run some command like (apk add nodejs) using alpine image
Run podman build --platform linux/amd64,linux/arm64 --manifest image-name  . to build it

Expected behavior
It should build images for multiple platforms successfully.
Notify maintainers

@zowoq @pennae
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.19, NixOS, 23.05 (Stoat), 23.05pre463258.7067edc68c0`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - channels(root): `"nixos, nixos-unstable"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Looks like https://github.com/NixOS/nixpkgs/pull/160802 would address this?

Yes it seems so. I think the podman module can provide an option to enable qemu-user-static after that PR is merged.


Incompatibility with V8

Bulb version 8 seems to be incompatible at the moment.
What we know :

It uses a random address type
Both handles 0x0b (used in v9) and 0x0c (used in v7) are not responding.

(See #7)

@IzzyWizzy666
Before you start sniffing packets, you can try (from Gatttool) to connect to the device as you did before then send this command :
[XX:XX:XX:XX:XX:XX][LE]> primary
You should end up with something like that :
attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x0008 uuid: 0000fff0-0000-1000-8000-00805f9b34fb
attr handle: 0x0009, end grp handle: 0x000b uuid: 0000ffe5-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb

Then try to write previous sequences, replacing 0x000b by the different values you have with grp handle key:
char-write-req 0x000b 56FFFFFF00f0aa to set white
char-write-req 0x000b 56FF000000f0aa to set red

Hi Benjamin,
Success :D
pi@raspberrypi3:~ $ sudo gatttool -t random -b F2:F1:09:E6:DE:78 -I[F2:F1:09:E6:DE:78][LE]> connectAttempting to connect to F2:F1:09:E6:DE:78Connection successful[F2:F1:09:E6:DE:78][LE]> primaryattr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fbattr handle: 0x0008, end grp handle: 0x0008 uuid: 00001801-0000-1000-8000-00805f9b34fbattr handle: 0x0009, end grp handle: 0x0009 uuid: 0000fff0-0000-1000-8000-00805f9b34fbattr handle: 0x000a, end grp handle: 0x000c uuid: 0000ffe5-0000-1000-8000-00805f9b34fbattr handle: 0x000d, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb[F2:F1:09:E6:DE:78][LE]> char-write-req 0x000b 56FFFFFF00f0aaError: Characteristic Write Request failed: Attribute can't be written[F2:F1:09:E6:DE:78][LE]> char-write-req 0x000c 56FFFFFF00f0aaCharacteristic value was written successfully[F2:F1:09:E6:DE:78][LE]> char-write-req 0x000c 5600FFFF00f0aaCharacteristic value was written successfully
Now to see if magicblue will work :)
On Tuesday, 14 March 2017, 20:54, Benjamin Piouffle<EMAIL_ADDRESS>wrote:

@IzzyWizzy666Before you start sniffing packets, you can try (from Gatttool) to connect to the device as you did before then send this command :
[XX:XX:XX:XX:XX:XX][LE]> primaryYou should end up with something like that :attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x0008 uuid: 0000fff0-0000-1000-8000-00805f9b34fb
attr handle: 0x0009, end grp handle: 0x000b uuid: 0000ffe5-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
Then try to write previous sequences, replacing 0x000b by the different values you have with grp handle key:
char-write-req 0x000b 56FFFFFF00f0aa to set white
char-write-req 0x000b 56FF000000f0aa to set red—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi Benjamin,
I've upgraded the bluetooth to bluez 5.9 that's what did it in the end I think :)
Magicblueshell also works now :D
Many thanks for the help :), now all we need to do is get it added to Homeassistant :)
Cheers,Keith
On Tuesday, 14 March 2017, 20:54, Benjamin Piouffle<EMAIL_ADDRESS>wrote:

@IzzyWizzy666Before you start sniffing packets, you can try (from Gatttool) to connect to the device as you did before then send this command :
[XX:XX:XX:XX:XX:XX][LE]> primaryYou should end up with something like that :attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x0008 uuid: 0000fff0-0000-1000-8000-00805f9b34fb
attr handle: 0x0009, end grp handle: 0x000b uuid: 0000ffe5-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
Then try to write previous sequences, replacing 0x000b by the different values you have with grp handle key:
char-write-req 0x000b 56FFFFFF00f0aa to set white
char-write-req 0x000b 56FF000000f0aa to set red—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Glad to hear that 🎉  !
I'm interested in the HomeAssistant integration, keep me in touch with your progress on that.
Also I think other people are looking for that feature too (see this post).


cannot load xx.pkl

I just follow the instruction to test LSTR, but I got this error(I just copy the cache/nnet/LSTR/LSTR_500000.pkl --> cache/tusimple_['test_label'].pkl ):

(lstr) xxxxxxxxx:~/work/lane/TuSimple/LSTR$ python test.py LSTR --testiter 500000 --modality eval --split testing
cfg_file: ./config/LSTR.json
loading all datasets...
split: test
loading from cache file: ./cache/tusimple_['test_label'].pkl
Traceback (most recent call last):
File "test.py", line 122, in
testing_db = datasets[dataset](configs["db"], split)
File "/home/yyang/work/lane/TuSimple/LSTR/db/tusimple.py", line 113, in init
self._load_data()
File "/home/yyang/work/lane/TuSimple/LSTR/db/tusimple.py", line 136, in _load_data
self.max_points) = pickle.load(f)
TypeError: 'int' object is not iterable
then I try to use torch to load it, I got error as following:
(lstr) xxxxxxxxx:~/work/lane/TuSimple/LSTR$ python test.py LSTR --testiter 500000 --modality eval --split testing
cfg_file: ./config/LSTR.json
loading all datasets...
split: test
loading from cache file: ./cache/tusimple_['test_label'].pkl
Traceback (most recent call last):
File "test.py", line 122, in
testing_db = datasets[dataset](configs["db"], split)
File "/home/yyang/work/lane/TuSimple/LSTR/db/tusimple.py", line 114, in init
self._load_data()
File "/home/yyang/work/lane/TuSimple/LSTR/db/tusimple.py", line 137, in _load_data
self.max_points) = torch.load(f)
ValueError: too many values to unpack (expected 5)
I am beginner, expect your help. Thanks!!!!

Hi,

Pls don't copy cache/nnet/LSTR/LSTR_500000.pkl to cache/tusimple_['test_label'].pkl

the cache/nnet/LSTR/LSTR_500000.pkl stores the trained model parameters

the cache/tusimple_['test_label'].pkl stores (image_path, labels) information. It will be generated automatically when you run the test script if you put the files directories same as:

TuSimple/
    LaneDetection/
        clips/
        label_data_0313.json
        label_data_0531.json
        label_data_0601.json
        test_label.json
    LSTR/

Feel free to ask me if you encounter other questions

Thanks a lot for your kindly reply. I understand now and run it successfully.
Another question is how to make my own data set and train it based on cache/nnet/LSTR/LSTR_500000.pkl?
Thank you very much!

Suppose your dataset has an image and corresponding label file
/path/to/images/lane0001.jpg
/path/to/annotations/lane0001.json (txt or other formats are also ok, you need to load them by yourself)
After loading .../lane00001.json to become a python object, like a dictionary
{
1thLane: [(0., 1.), (2., 3.), (4., 5.)],
2thLane: [(6., 7.), (8., 9.), (10., 11.)],
3thLane: [(12., 13.), (14., 15.), (16., 17.)]
}
Then you need to modify the TUSIMPLE._extract_data(self) in db.tusimple.py.
The ultimate objective is to feed the self._old_annotations by：
'path': /path/to/images/lane0001.jpg,
'org_path': lane0001.jpg,
'org_lanes': [[0., 2., 4.], [6., 8., 10.], [12., 14., 16.]],
'lanes': [[(0., 1.), (2., 3.), (4., 5.)], [(6., 7.), (8., 9.), (10., 11.)], [(12., 13.), (14., 15.), (16., 17.)]],
'aug': False,
'y_samples':[[1., 3., 5.], [7., 9., 11.], [13., 15., 17.]]
Other codes might be held.
See if there are any other problems I can help you with.

Thank you very much! I will try as your suggestion!


Reactive variable reassignment rendering failed

Vue version
^3.8.3
Link to minimal reproduction
https://github.com/huifer/vue3-reactive.git
Steps to reproduce
Write the following code
<template>

{{ a.old_data }}

    <button @click="click">渲染</button>

{{ a.new_data }}

</template>

What is expected?
After the click method is executed, {{a. old_data}} and {{a. new_data}} on the page are rendered as 2
What is actually happening?
The page has not changed
System Info
System:
    OS: macOS 12.3.1
    CPU: (12) x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
    Memory: 264.08 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.14.0 - /usr/local/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 8.15.0 - /usr/local/bin/npm
    Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 105.0.5195.125
    Firefox: 103.0.2
    Safari: 15.4
  npmPackages:
    vue: ^3.2.13 => 3.2.39

Any additional comments?
Do not use the following methods

function click2() {
  a.new_data = 2;
  a.old_data = 2;
  console.log(a);
}

reassigning *variables *is never reactive, this is a limitation in Javascript. And the reason why ref() exists.

If this is caused by variables, why use a new_ Data can be modified directly and rendered normally?

I'm not sute what you mean here.

When I execute the click2 method, I render normally. I don't want to render in this way. I want to render directly by reassigning a

@LinusBorg

As I said, you need to use a ref for this. reassigning variables can't reactive in Javascript.
Please use this repository's "discussions" Section or our discord chat to ask for more help. This issue is not the place for that.


Break out functions

sendSharepoint and sendTouchpoint hid a lot of magic functionality depending on what parameters the called data object had. This functionality has been split out into 5 new functions which although is a little more manual for now make it much more obvious what is happening/will happen. The new functions are:

createToken - creates a token / some tokens
updateToken - updates the metadata associated with the given token
lockToken - locks the given token to prevent further updates
consumeToken - consumes the given token, locking it and specifying that a share has occurred.

We also have a new gulp task build-local which does as it suggests - builds the SDK as build would, but using local IPs. Presently it is hardcoded to localhost:3000 / localhost:4000, but if we decide on some environment variables, we can use those instead.
The testing is incomplete and the documentation has not yet been updated, giving us a chance to test it to make sure if it is what we want before time is spent testing for incorrect functionality or writing irrelevent documentation.

FTR the failures above are because I didn't push the deletion of the old test files, which naturally weren't applicable anymore :dromedary_camel:

Just need to make sure the *.bak files are deleted :rooster:


Add async support for windows

I guess it's got to work already after fixing some #[cfg] flags and some refactoring.

it was closed in #24


Fix vsync on macOS getting disabled when using afterMinimumDuration

Calling afterMinimumDuration with 0.0 will implicitly disable vsync so need to work around that.
Fixes https://github.com/godotengine/godot/issues/99657#issuecomment-2501743024

This works with max fps 0, however if I set it to anything else it forces vsync. For example if I set max fps to 200 I get 120 fps when I run the game

This fixes the issue when vsync is disabled, but introduces a regression to fps stability when vsync is enabled
This PR (VSync ON):

Master (VSync ON):

@stuartcarnie can you take a look at this one?

Thanks!


KYLIN-4433 use cube config when uhc step enabled

issue: https://issues.apache.org/jira/browse/KYLIN-4433
If the system level configuration is used, it will cause the dictionary to be built repeatedly, so I think the configuration of the cube should be used here.
Thanks!

Pull Request Test Coverage Report for Build 5785

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.003%) to 27.523%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/CreateDictionaryJob.java
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

core-dictionary/src/main/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTable.java
1
81.08%

Totals

Change from base Build 5776:
0.003%

Covered Lines:
24306

Relevant Lines:
88310

💛  - Coveralls

Thank you Changji! Next time if you can add the JIRA id in git commit message, that would be great! like "KYLIN-4433 use cube config when uhc step enabled"

@shaofengshi ok, next time i will pay attention. I am very glad to contribute to the community!


[FIX] Enabling Responsive Paddings: replaced sapM with sapUi

sapM-Std-Padding* is renamed to sapUi-Std-Padding*.
Fixes: https://github.com/SAP/openui5-docs/issues/21

Will be fixed with version 1.75


Tensorflow.js Causes the Browser to Slow Down When Combining the Handpose and Weboji Models

Hello,
I am trying to build a Three.js app (repo link) in the browser that lets the user move their face to move the camera, and to move object around with their hands.
I am trying to use both the weboji and handpose models to accomplish this, however when I activate both of the models it causes my browser to slow down tremendously, and I got the following warning in the console of the Inspect tool in Chrome:
tf-backend-webgl.js:6593 Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance.

Any advice on how to improve performance when combining the handpose and weboji models? I am not really sure at this point whether this is a problem I should solve in my own specific app, or if this issue is a way to help improve Mediapipe or Handsfree.js in general.

Is it possible that we could also improve the performance of the handpose model if we enabled support for a wasm backend in the config object passed to Handsfree.js?
I'm not sure how much value that contribution would make to Handsfree.js, but I am curious about how the speeds of WebGL and WebAssembly compare if anyone knows.

Hi! I'm sorry I took so long to reply I had a weird month. I'm getting back into development. I'll take a look at this tonight and get back to you in a day or two if you're still interested!
The handpose model has a bunch of helpers to make it easier to work with...for example, it loads Three.js and renders the joints in the background. This is done because I don't know how the heck to calculate these manually without Three.js 😅
It should be possible to disable all the helpers to speed things up, but I'll let you know when I dig in a little deeper.


Cannot read property 'slice' of null

I have next code in my webpack config:
var REPO_INFO = gitRepoInfo();
var sha = REPO_INFO.sha.slice(0, 7);

While trying to run a build, getting next message:
var sha = REPO_INFO.sha.slice(0, 7);

TypeError: Cannot read property 'slice' of null

Previously didn't had any problems. But now for some reason getting this.
Any clues on solving issue?

It just started working again, in some 30 minutes...


Make #[system_mut] type invariants const_assert!()s

Currently the invariant that all arguments to a SystemMut must be mutable references to types with distinct TypeIds is enforced at runtime:
https://github.com/remexre/ia/blob/bde57acacddb8671ada918d6efb3049b74adc38c/libs/ecs_proc_macros/src/lib.rs#L166-L174
Ideally this would be at compile-time. This would be possible if TypeId::of were a const fn, but this is currently not the case.

It looks like specialization might make this possible: https://github.com/rust-lang/rust/issues/31844#issuecomment-217653473


Security Concern: Isn't Ruby 2.6 EOL?

I was looking at deploying this and then noticed: https://github.com/onetimesecret/onetimesecret/blob/develop/Dockerfile#L56
per: https://endoflife.date/ruby I believe 2.6 is EOL. Any thoughts on updating this to the latest stable version?

The container image has a high number of severe vulnerabilities including multiple critical and high CVEs in both the OS  and Ruby. Are there any plans to update the OS and Ruby?

@onetimesecret any thoughts?

I've come across the same issue - Won't install with Ruby below 3 (docker) but when it does get further we get Token errors because the Code is not updated for Ruby 3.
Would really love some movement on this - getting pounded during Security Meetings that the current Server implementation is Not in a good security state.

@onetimesecret any thoughts? This issue has been open since August. Would it make more sense to look at having someone else maintain this project? There appears to be orgs focused on helping projects like yours stay alive/maintained: https://www.codeshelter.co/
Happy to find more options if this is something that would be of interest to you.

At long last I've finally had the time and mindspace to make some actual progress on Ruby 3.1+ support (I'd had a number of false starts over the past few years). @venkatamutyala Thanks for raising this issue and for the follow-up. I hadn't heard about Code Shelter. I am interested in getting some help which I think after the Ruby 3 hurdle will be feasible.
I pushed a final release of the current codebase (release 0.12.0) and started a pristine develop branch for the Ruby 3.1+ work.
I'm working on this in earnest now. One of the pitfalls I'd been getting into was trying to bring some of the dependencies up to this modern era at the same time. I'm giving up on that route so I can focus my attention and not get bogged down again.

@delano would you want external contributions? If so I can share this with some Ruby user groups that I am a part of.

@venkatamutyala Absolutely. I'd really appreciate that.

Just spammed a couple of different groups.
As for where I'm capable, if it's related to: DevOps/CI/CD/Platform/Deployment/Containers/Docker/Infrastructure, feel free to tag me on an existing GitHub issue or a new one.

Thanks @venkatamutyala!
Initial support for Ruby 3 is live in the develop branch now. There's a basic workflow that runs tests against a matrix of ruby versions:
https://github.com/onetimesecret/onetimesecret/actions/runs/8577324066
Any and all feedback is welcome.

Hey @delano what's the benefit of supporting multiple versions? It feels like extra overhead given folks can just use a version manager to match whatever this project requires.

Hey, good question. Supporting multiple Ruby versions helps to accommodate a wider range of operating environments. Even just in terms of operating systems, something like Debian or Centos that value stability over flexibility, the available package manager(s) will intentionally lag behind the latest and greatest versions of most tools. There can also be company constraints that are very prescriptive about what is and isn’t allowed to run on the network. Java shops might not allow MRI Ruby but are fine with JRuby for example. So it’s all a balancing act. When it’s easy enough to keep the requirements flexible, we’re all better off for it in the world of open source.Message ID: @.***>

Opened a couple issues re: devops here:
https://github.com/onetimesecret/onetimesecret/issues/306
https://github.com/onetimesecret/onetimesecret/issues/305
Also, one more that is probably worth considering is using a docker base image with less vulnerabilities. Ex. something more hardened. I can look into a couple options for this.


memoize experiment persisted data retrieval

++ remove unnecessary data persistence, now that we ban inline experiment definitions
++ other stuff, i 4got
things to note:

beta_probability_simulations reduced to 1k (from 10k), some stats might become less accurate.
some data in redis from before this update might become obsolete.
idk if ab test still functional or not lul (at least specs = green). need to do more real test.

Pipeline & multi kan sama2 1 call
Multi malah atomic.
Untungnya apa diubah pakai pipeline?

kalo dari baca2 pipeline lebih cepet sih. tapi memang perlu atomicitynya, ini masih nyoba aja, nanti rencananya dibalikin lagi pake multi


[nextra] Flatten indexer content

Description
Same as title
Checklist

Do all Lints pass?

[x] Have you ran pnpm spellcheck?
[x] Have you ran pnpm fmt?
[x] Have you ran pnpm lint?

👍 will revisit if it gets too long. for now though i think it makes it easier to find the examples


Investigate the need for transaction boundary marking in tracing.

Our recent bug in tracing had to do with there not being transaction boundaries marked in the debug-style traces, while we had them in the trace-style traces. Investigate if there's a more elegant way to use the updaters so we don't have to do this.

@daniellehrner - stale in latest tracer? Can we close?

@daniellehrner - stale in latest tracer? Can we close?

Yes, I think we can close this one.


Repo sync for protected CLA branch

The pull request is created from main637789252423538294 to main to fix git push error for protected CLA branch

@ghogen : Thanks for your contribution! The author(s) have been notified to review your proposed change.


lcl_xml: Export typedescriptors when reading data

Fix #171

not sufficient: ct_data would always be populated. It has to be a multi-step-approach: Get the metadata (descriptot) without data first.


Fix ods-1090 for rhods 1.26

With data science pipeline getting added to rhods 1.26 build, user_facing_endpoints_status target will be 4 inseted of 3. I have not added rhods version check here because rhods 1.25 branch is already release

https://opendatascience-jenkins-csb-rhods.apps.ocp-c1.prod.psi.redhat.com/job/rhods-ci-pr-test/1700/console


Add missing constraints of the title

I add two missing constraints of the title stack view, to fix a UI issue (you can see that image I post) in your stocks app.

It looks nice on my iPhone 7 now.

Thank you for your effort! 👍

Thanks, @kingcos!


Payer payloads

!!!!! STOP AND READ !!!!!
If the dropdown above says "base fork: lord/master", you are submitting your change to ALL USERS OF SLATE, not just your company. This is probably not what you want. Click "base fork" to change it to the right place.
If you're actually trying to submit a change to upstream Slate, please submit to our dev branch, PRs sent to the master branch are generally rejected.

Sorry, don't know why the select does not change the base branch.


Fix find_by_text to deal with "

Hi @ecesena. thank's for your contribution.
Can you add a test for this case?

Added - could you double check if the style is ok?
Travis fails on some versions od django, but it seems unrelated to my change.

@ecesena thank you!


Fails to build with libc++ and clang 18.x

When building with clang and using llvm c++ runtime ( libc++ ), the builds fail with
| In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/git/framework/platform/platform.cpp:18:
| In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/git/framework/platform/platform.h:21:
| In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/recipe-sysroot/usr/include/c++/v1/string:62
5:
| In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/recipe-sysroot/usr/include/c++/v1/string_vi
ew:213:
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/recipe-sysroot/usr/include/c++/v1/__fwd/string_view.h:22:41: erro
r: 'char_traits<fmt::detail::char8_type>' is deprecated: char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t i
s non-standard and is provided for a temporary period. It will be removed in LLVM 19, so please migrate off of it. [-Werror,-Wdeprecated-
declarations]
|    22 | template <class _CharT, class _Traits = char_traits<_CharT> >
|       |                                         ^
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/git/third_party/fmt/include/fmt/core.h:357:26: note: in instantia
tion of default argument for 'basic_string_view<fmt::detail::char8_type>' required here
|   357 | template <typename Char> using std_string_view = std::basic_string_view<Char>;
|       |                          ^~~~~
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/git/third_party/fmt/include/fmt/core.h:448:50: note: in instantia
tion of template type alias 'std_string_view' requested here
|   448 |                                       S, detail::std_string_view<Char>>::value)>
|       |                                                  ^
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/git/third_party/fmt/include/fmt/format.h:781:57: note: in instant
iation of template class 'fmt::basic_string_view<fmt::detail::char8_type>' requested here
|   781 | inline auto compute_width(basic_string_view<char8_type> s) -> size_t {
|       |                                                         ^
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/recipe-sysroot/usr/include/c++/v1/__string/char_traits.h:81:8: no
te: 'char_traits<fmt::detail::char8_type>' has been explicitly marked deprecated here
|    81 | struct _LIBCPP_DEPRECATED_(
|       |        ^
| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/vulkan-samples/git/recipe-sysroot/usr/include/c++/v1/__config:975:53: note: expanded
 from macro '_LIBCPP_DEPRECATED_'
|   975 | #      define _LIBCPP_DEPRECATED_(m) __attribute__((__deprecated__(m)))
|       |                                                     ^
| 1 error generated.

For now the workaround is to use -Wno-error=deprecated-declarations in cppflags but it will be a hard error starting llvm-19 so this needs to be fixed to not use char_traits

I can reproduce this while trying to update the Android builds tools. We'll look into this.
See #1188 1188

Should be fixed with #1228


proposal: provide an encoder implementation.

Originally, the goal of the library was to implement a compliant consumer of SSE HTTP streams.
As the project matures, we could afford to be batteries included if we also provided a compliant producer of SSE HTTP streams.
The proposal is to provide an Encoder implementation.

You usually do not both sides in the same program. I don't see a valid reason to have both server and client side in the same package (and net/http is not a good example for me: having both client and server in the same package confuses me).

I do agree with that. I'll close the proposal.

One risk in providing both server and client in the same package it to be tempted to use the server to test the client (and vice versa) and to have bugs on one side hidden by mirror bugs on the other side: that would not validate interoperability.


expose stop words and filter eoa

#350

@Harold-lkk We've changed the stop_words usage in this PR. Please be aware of this.

I'm currently trying to use lmdeploy. However, I'm hitting a roadblock due to not being able to specify stop words relevant to my model. By when can this PR get merged in?

I'm currently trying to use lmdeploy. However, I'm hitting a roadblock due to not being able to specify stop words relevant to my model. By when can this PR get merged in?

Before next Wednesday

May update test_model.py too.
pytest tests/test_model.py raised errors

  File "/data1/projects/llmdeploy/lmdeploy/utils.py", line 95, in filter_suffix
    response = response.removesuffix(item)
AttributeError: 'str' object has no attribute 'removesuffix'

removesuffix is introduced in python3.9. But we claim lmdeploy supports python >= 3.8


Add an utility class for line-through

I think an utility class to define text-decoration: line-through would be useful.

Just curious: do you have an example of where you'd use this instead of the  tag?

Actually, I could use the tag :)


[Bug]: After the target data source is invalid, the dlm task rolls back and reports that it has no permissions.

ODC version
ODC424
OB version
independent
What happened?
After the target data source is invalid, the dlm task rolls back and reports that it has no permissions.

What did you expect to happen?
execute failed
How can we reproduce it (as minimally and precisely as possible)?
chat privately
Anything else we need to know?
No response
Cloud
No response

#1640