automatically close one datepicker popup when opening another datepicker instance

When i have two or more directives of a datetimepicker on a page and when i have openend one, I want it to automatically close the other. This is not the case in the current version as it leaves the other one open as it opens yet another datepicker popup.
Perhaps it would be best to have this option as a global (and local) setting on each directive for the instances that you do want to have multiple opened datepickers on one page.
The screenshot below illustrates the issue, I want only one instance of a datepicker to be openend at a time, not multiple:

Datetimepicker wraps Angular UI Bootstrap Datepicker developed under https://github.com/angular-ui/bootstrap Please feel free to submit an issue there.

I feel this is not a functionality which should come in the Angular UI Bootstrap Datepicker by default. When using the default datepicker, and opening a second datepicker,.. you can automatically close the first datepicker by using the following solution in the controller (which in the case of this plugin, resides inside of the plugin):
HTML:

JS (to be modified in the controller):
$scope.open = function($event,opened) {
$event.preventDefault();
$event.stopPropagation();
$scope[opened] = true;
};
http://stackoverflow.com/questions/19613510/how-to-have-at-least-two-datepickers-of-ui-bootstrap-on-a-single-page
I cannot modify the specific html attributes (ng-click) of the datepicker itself nor the controller for just the datepicker to make this change.

See the last commit: https://github.com/zhaber/angular-js-bootstrap-datetimepicker/commit/2c7d772fe11a882930f378bcef0d32ce84307e29 and plunkr at http://plnkr.co/edit/zJOc40?p=preview


input-mapping PHP8

https://keboola.atlassian.net/browse/PST-600
fails because BC breaks in dependencies solved in https://github.com/keboola/platform-libraries/pull/46

koukám na to


can't add dependency into py gradle project

using your guide to add gradle dependency i can't do it....
Is there any way to use your project ? even if i can't inject it into mine?

@GeorgiiFidarov Use version v2.8 instead of 2.8
Updated :
implementation 'com.github.ErrorxCode:EasyInsta:v2.8'


Tech-preview-release-notes

We decided to use Alpha1 as a release version instead of TechPreview. We need to reflect this in the release notes update.


Signature algorithm refactor, part 3.

Checklist

[x] tests are added or updated

Description of change

This PR adds support for TLS 1.3 style signature scheme based certificate selection. It saves the index of the TLS 1.3 certificate we use for later retrieval. Although this technique is currently only used with TLS 1.3 it could be applied to earlier versions: potentially tidying up the certificate selection code considerably... but that's for a later PR.

Question: Does this yet deal with situations in which the client signature algorithms don't overlap with the server (only or any of) certificate? While we must to try choose a compatible chain when we can, we need to choose some default chain (typically the only one we have) when we can't. Does this or prior work address this issue?

This isn't currently addressed. If the client signature algorithms doesn't match any EE certificate: the handshake aborts with a fatal error.
For TLS 1.3 we could change that to use whatever chain is available. Though we'd have to work out what logic to apply for multiple chains and which signature algorithm to use.
For versions prior to 1.3 it's trickier because the certificate type is tied to the ciphersuite.

For TLS 1.3, the abort is reasonable.  Yes you can send back whatever you have, but really, there are only two types of certs in TLS 1.3 :)

Rich, the requirements for TLS 1.3 are clearly specified in https://tools.ietf.org/html/draft-ietf-tls-tls13-18#section-<IP_ADDRESS> (top of page 56 in draft18):
   All certificates provided by the server MUST be signed by a signature
   algorithm that appears in the "signature_algorithms" extension
   provided by the client, if they are able to provide such a chain (see
   Section 4.2.3).  Certificates that are self-signed or certificates
   that are expected to be trust anchors are not validated as part of
   the chain and therefore MAY be signed with any algorithm.

   If the server cannot produce a certificate chain that is signed only
   via the indicated supported algorithms, then it SHOULD continue the
   handshake by sending the client a certificate chain of its choice
   that may include algorithms that are not known to be supported by the
   client.  This fallback chain MAY use the deprecated SHA-1 hash
   algorithm only if the "signature_algorithms" extension provided by
   the client permits it.  If the client cannot construct an acceptable
   chain using the provided certificates and decides to abort the
   handshake, then it MUST abort the handshake with an
   "unsupported_certificate" alert.

   If the server has multiple certificates, it chooses one of them based
   on the above-mentioned criteria (in addition to other criteria, such
   as transport layer endpoint, local configuration and preferences).

This is not restricted to TLS 1.3, similar text should have been in earlier TLS specifications.

The current TLS 1.3 code decides which signature algorithm to use based on the available EE key and the preferences. It doesn't curently select using signature algorithms in the whole chain: so it would just send whatever chain was configured.
What that quoted text above dosn't cover is the case where the EE key doesn't match any supported signature algorithm. There the signature would be on TLS messages and not on certificates. That's where it currently aborts.

@snhenson What that quoted text above doesn't cover is the case where the EE key doesn't match any supported signature algorithm. There the signature would be on TLS messages and not on certificates. That's where it currently aborts.

No objection to aborting when the client's supported signature algorithms do not include any of the available EE public key types.  The intent of the text in the TLS 1.3 draft is to avoid needless aborts when potentially unsupported signatures are used in chain signatures. While we're obligated (when multiple chains are available) to try to select a chain that is compatible, when no chain is fully compatible, we must continue anyway and choose some default chain.  Simplest is to ignore the signature algorithm constraints and just choose the one that goes with the most preferred algorithms.

Well, not to get into the "how many angels" aspect of things, but...  fallback is a SHOULD not MUST.  And in all these years while you say it "should have said that" nobody filed an errata or anything.
Whatever.  This is not a hill I'm going to die on, just pointing out that the current behavior if legit, even if some think it sub-optimal.

We're not talking about fallback.  We're talking about avoiding foolishly refusing to complete a TLS handshake because the X.509 chain (which should be largely out of scope of the TLS spec) may or may not meet the client's TLS algorithm profile.   So it is really bad to refuse to do TLS, on an assumption of what the client might or might accept for X.509 auth.

In case it isn't clear OpenSSL will never refuse to send a chain based on the client's preferences provided the EE key is acceptable so it does pretty much what @vdukhovni is suggesting already.

@richsalz you requested changes are you happy with this now?

+1 / happy happy :)


Individually style date pickers

My application needs to individually style the date pickers (e.g. one with a blue background, another red).  react-dates appears to be an all-or-nothing approach, changing all the date picker styles either through CSS class overrides or via themes.  Is there a way to pass styles to date pickers individually?

Currently having the same issue, let me know if you managed to resolved the issue. @peacechen Thanks

Currently having the same issue, let me know if you managed to resolved the issue. @peacechen Thanks

I switched to Material-UI datepicker which allows individually styling instances. The API is different and takes some learning, but it's very powerful and looks great.

I switched to Material-UI datepicker which allows individually styling instances. The API is different and takes some learning, but it's very powerful and looks great.

You can do it via the renderCalendarDay prop like this:
import { DateRangePicker } from "react-dates";
import CustomizableCalendarDay from "react-dates/lib/components/CustomizableCalendarDay";

export default function MyApp() {
  const selectedStartAndEndStyles = {
    background: "#590098",
    border: "1px solid #590098",
    color: "#fff",

    hover: {
      background: "#7A32AC",
      border: "1px solid #7A32AC",
      color: "#fff"
    }
  };

  const selectedSpanStyles = {
    //...
  };

  const hoveredStyles = {
    //...
  };

  const blockedStyles = {
    //...
  };

  const customDayStyles = {
    selectedStartStyles: selectedStartAndEndStyles,
    selectedStyles: selectedSpanStyles,
    selectedSpanStyles: selectedSpanStyles,
    selectedEndStyles: selectedStartAndEndStyles,
    hoveredSpanStyles: hoveredStyles,
    afterHoveredStartStyles: hoveredStyles,
    blockedMinNightsStyles: blockedStyles,
    blockedCalendarStyles: blockedStyles,
    blockedOutOfRangeStyles: blockedStyles
  };

  return (
    <DateRangePicker
      ...
      renderCalendarDay={props => <CustomizableCalendarDay {...props} {...customDayStyles} />}
    />
  );
}


LetsEncrypt Certificate of maven.dragons.plus is Expired

Hi there I just kindly wanted to let you know that the TLS certificate you issue on maven.dragons.plus expired on Oct 6 2024. This makes it impossible to download assets from your Maven repository. Please let me know if I can be of assistance :)
P.S. thank you so much for the scala adaptor!

Humm sorry for lately reply. I uploaded build result to my friend's maven, but his is busy recently.
I'll reupload build to new mvn these days, before I finished moving you can use ModrinthMaven instead
When I finished moving, I'll notified you. Thanks to your support :)

Hi Krysztal, no worries and no hurry! Thank you so much for your work. I will use Modrinth's maven for now, thanks!

A quick update: the LetsEncrypt certificate on maven.dragons.plus is now valid again, meaning that I can download the maven artefacts. As far as I'm concerned, there's no need for you to migrate to another maven.

Thanks for your notice and support :)


Checkpoints details for testing the model.

Hi @csguoh,
Thank you for open-sourcing such great work!
I want to test and train the model on a custom dataset. To start the testing phase, I set up your code on a GPU. In the config file, I added the path of LEMMA-release.pth in TEST and specified the correct path for MORAN.
Now, I am encountering an issue with the PositionAware section when testing the model using TextZoom test data. Which checkpoint files for vision and language should I use?
Also, do I need to convert my data to .mdb format to train and test the model?
I would greatly appreciate your guidance on this.
Thank you.

Hi,
Thanks for your interest in this work. In our LEMMA, the PositionAware model adopts the attention map extracted from the OCR model ABINet. If you want to simply test our LEMMA, this part of parameters have already contained in the released LEMMA-release.pth. If you want to train on your own dataset, you can use the released model weights from the ABINet repo with this link.
If you want to train from scratch, it is recommended to first convert your dataset to mdb for fast io. If you just want to test on jpeg image, it might to write some code to allow jpeg format input.
Let me know if you have any other questions.

@csguoh
Thank you for your prompt reply.
Now, I was able to run the test script. I have one question: after training the model with my dataset, do we need all the model files that were used for testing in order to deploy the model for inferencing?
What would be the estimated size of the model that I can deploy for inferencing?
Thank you.

Hi,
Thanks for your interest in this work. In our LEMMA, the PositionAware model adopts the attention map extracted from the OCR model ABINet. If you want to simply test our LEMMA, this part of parameters have already contained in the released LEMMA-release.pth. If you want to train on your own dataset, you can use the released model weights from the ABINet repo with this link.
If you want to train from scratch, it is recommended to first convert your dataset to mdb for fast io. If you just want to test on jpeg image, it might to write some code to allow jpeg format input.
Let me know if you have any other questions.

@csguoh  I used the LEMMA-release.pth file for PositionAware, but it was giving some errors. So, I used ABINet vision and language weights.
I am wondering: If I want to write an inference script, I only have to use the LEMMA-release.pth file, right?

Exactly! The released LEMMA-release.pth file contains all the module weights you need, including the fine-tuned ABINet weights.


vsce: 3.0.0 -> 3.1.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/microsoft/vscode-vsce/releases.
meta.description for vsce is: Visual Studio Code Extension Manager
meta.homepage for vsce is: https://github.com/microsoft/vscode-vsce
Updates performed

NPM version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.1.0 with grep in /nix/store/4nk441qfw0l03by0b0ckaxy12szns82n-vsce-3.1.0
found 3.1.0 in filename of file in /nix/store/4nk441qfw0l03by0b0ckaxy12szns82n-vsce-3.1.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

vsce

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/4nk441qfw0l03by0b0ckaxy12szns82n-vsce-3.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A vsce https://github.com/r-ryantm/nixpkgs/archive/5b09fecd006eff96b769560c3f821ae8bcb1a5db.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/5b09fecd006eff96b769560c3f821ae8bcb1a5db#vsce

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/4nk441qfw0l03by0b0ckaxy12szns82n-vsce-3.1.0
ls -la /nix/store/4nk441qfw0l03by0b0ckaxy12szns82n-vsce-3.1.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

vsce

Maintainer pings
cc @aaronjheng for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

@NixOS/nixpkgs-merge-bot merge


testing urlchecker that has retry

This pull request will test an update to URL checker, where we add a retry (3 times for this case) for failed URL checks. See the changes here https://github.com/urlstechie/URLs-checker/pull/17.
Signed-off-by: vsoch<EMAIL_ADDRESS>

okay we have a bug! I'm going to fix it on the upstream, update the commit here, and continue.

Great! I just had a good run for the URL checker - I cleaned up the printing quite a bit and adding printing of params so it's much more clear, going to open a PR over there and hopefully get a release candidate we can use to update the version we use.

https://github.com/urlstechie/URLs-checker/pull/19

the output looks much better, if i understand the output in green are success after retry. i take it once there is a release may 0.1.4 we can bump the version instead of using  urlstechie/URLs-checker@fix/bug-with-check-response-status .
One thing i found odd is some files are getting check when they dont exist. For instance there is no such page buildtest-framework/docs/build_subcommand/module_collections.rst   and its getting picked up from where?
The page was deleted and i can see it is not found in your feature branch https://github.com/researchapps/buildtest-framework/tree/test/URLchecker-update/docs
 buildtest-framework/docs/build_subcommand/module_collections.rst
 ----------------------------------------------------------------
https://lmod
https://lmod

This would likely be a separate bug with the tester (addressed in another issue/PR I think). I think it's likely that we need to add checkout of a branch? I don't see anywhere that a branch is checked out - https://github.com/urlstechie/URLs-checker/blob/master/check.py#L15.
I'll open an issue and see if we can add this, it obviously is super important to be testing the right branch!

Also - the git path is used for the clone, for a PR from a different user this would not work. If we trust the url check to be run for someone else's repo, then it's safe to change this to default to whatever the github repository of the PR is set to be.

This would likely be a separate bug with the tester (addressed in another issue/PR I think). I think it's likely that we need to add checkout of a branch? I don't see anywhere that a branch is checked out - https://github.com/urlstechie/URLs-checker/blob/master/check.py#L15.
I'll open an issue and see if we can add this, it obviously is super important to be testing the right branch!

I agree, if its not testing the PR branch then result is useless.

Also - the git path is used for the clone, for a PR from a different user this would not work. If we trust the url check to be run for someone else's repo, then it's safe to change this to default to whatever the github repository of the PR is set to be.

This means each user fork has to change git_path https://github.com/HPC-buildtest/buildtest-framework/pull/211/files#diff-2b1385f14466a13c63506ce44d851102L14 not really intuitive. Or we test only devel branch to check URls periodically before merging them to master.  It may make sense to go through all the URL check before doing a release as most links would be found in documentation. It would be just one added thing doing release instead of doing once per PR.

I'm not sure why he has a git clone at all - the logical thing would be to checkout the repo and then have everything there. I think the variable should be removed (or optional) but I'll check with him first.

https://github.com/urlstechie/URLs-checker/issues/20

@shahzebsiddiqui I think we have a working URLchecker now! https://github.com/HPC-buildtest/buildtest-framework/pull/211/checks?check_run_id=501529549 I haven't PRed the branch to upstream (so there isn't a release that is ready for use) but I wanted for you to take a look here. Notice that:

we don't provide a git_path anymore, the default branch / repo that is already checked out is used
we are only checking the docs folder, afforded by adding the "subfolder" variable
I added a user agent string so that we don't get 403 errors (the hpc wire failure is now resolved)
I whitelisted the settings GitHub path - this won't be viewable publicly and thus would 404.

I'm going to open a PR now, I'll reference the build for review.

hey @shahzebsiddiqui this is ready for merge! I've updated to 0.1.6, and has a much nicer print out to the terminal, and also we can see retry in action!

Note that the url above had a timeout, was retried, and then returned green.

@vsoch great work i like it now, i see the retry worked on the Slack Heroku link. This looks really good now and I can see this to be useful when writing docs to check all URLs. One main concern is when URLs change over time and this can cause broken links in the docs, I am going to merge this now.

Great! I'm working on some more bug fixes now, for example, the newlines error and allow for patterns of files (instead of urls) to fix. https://github.com/urlstechie/URLs-checker/pull/30


Enable aarch64 support in Linux

Checklist

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

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please re-render

@duncanmmacleod , this one is ready to merge

@isuruf, this package is required to continue working on the Qt 5.15 update, is it possible to have it merged?

Let's give @duncanmmacleod more time to review.

Sorry for the delay, I'm in and out of the office through September. Looks great, thanks @andfoy.


Add missing items in show at login

https://bugzilla.redhat.com/show_bug.cgi?id=1224702

@h-kataria please review/merge..

@ZitaNemeckova can you move the new entries up along with others that fall under same navigation tab, so move "Cloud / Stacks" next to all other "Cloud / xx" and move "Infrastructure / Configuration Management" next to "Infrastructure / xx" entries in pull down.

@h-kataria Done.

@ZitaNemeckova Clouds/Stacks should be after Clouds/Instances.  We try to make this list match the order of the navigation menus in the UI.  Thx, Dan

@dclarizio Clouds/Stacks moved after Clouds/Instances.


Redstone signal on crafter cancels task instead of pausing

Issue description:
Crafting task cancelled if redstone signal is applied to the crafter.
What happens:
The craft gets cancelled after the first set of items are pushed.
What you expected to happen:
The first craft is sent, then the redstone signal pauses the craft then the craft resumes again.
Steps to reproduce:
1.Set up a crafter on a chest to output items for a crafting operation
2.Request an item to craft
3.Use a redstone signal to pause craft
...
Version (Make sure you are on the latest version before reporting):

Minecraft: 1.10.2
Forge: N/A
Refined Storage:1.2.3

Does this issue occur on a server? [yes]
Hi, I am trying to autocraft some items with the enderio alloy smelters and I've ran into a problem. The enderio conduits don't round robin perfectly so I've worked out that if I put a certain number of items into a chest, it will work fine. Say that I want to make energetic alloy and I have 4 alloy smelters, I would then output 4 redstone ,4 glowstone  and 4 gold and it will put the items in the right place. In order to do this, I have the recipe to output 4 of each item then I pause the craft using a redstone signal and wait till the chest is empty again. The problem is that when the first batch of items goes in, the redstone signal will cancel the entire task instead of pausing it. I don't know if this intended or a bug so I thought I'd let you know.
Aside: Perhaps a feature similar to the AE blocking mode could be a useful addition.

Redstone signals on crafter don't pause it? They start a task...


adding inline-related-card

hi
how can i create inline-related-card like PERSONS section in this link?
http://ec2-35-157-197-184.eu-central-1.compute.amazonaws.com/admin/countries/country/1/change/

It's StackedInline
https://github.com/MaistrenkoAnton/django-material-admin/blob/master/app/demo/countries/admin.py

from django.contrib import admin
from demo.countries.models import Country, Person, ProxyPerson
from material.decorators import register
from material.options import MaterialModelAdmin
class PersonInline(admin.StackedInline):
model = Person
ordering = ('id',)
extra = 0
@register(Country)
class CountryAdmin(MaterialModelAdmin):
list_display = ('name', 'created', 'modified')
inlines = [PersonInline]
icon_name = 'location_city'
search_fields = ('name',)

so thanks man :+1:


Support where clauses in test_prop

Resolves #34

Codecov Report

Merging #41 (3ccdbb2) into main (3757b41) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #41   +/-   ##
=======================================
  Coverage   75.00%   75.00%
=======================================
  Files           5        5
  Lines          80       80
  Branches        4        4
=======================================
  Hits           60       60
  Misses         19       19
  Partials        1        1

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Implement Disjoint-set data structure

Implement Disjoint-set data structure (https://en.wikipedia.org/wiki/Disjoint-set_data_structure)

Resolved by PR #46


Develop upstream sync 220110

jenkins : retest Ubuntu-GPU-single please

jenkins : retest Ubuntu-GPU-single please


Ubi device is not showing up

v1.0 works with UBI but not sonos.
I tried your latest beta 5, with this I see sonos but not UBI.
For now I created 2 different app's to handle ubi and sonos.
--ST Community:coolcatiger

1.0.3 will have a toggle in configuration to support speechSynthesis (Ubi/VLCThing) or musicPlayer (Sonos/VLCThing) depending on if the toggle switch is on or off.  This has been in the development branch since 1.0.3-Beta1.


Handle requests

Coverage remained the same at 100.0% when pulling a255e50ec14a8377a82abe5a5f63457c2eb54d47 on handle_requests into b6542fdd4fc8ed0d475dca4d01e9b5fb08fbfb3b on master.


Sprint 5: Sign-off [Pending]

Sprint 5 is completed and the feature/planning for next sprint has been accepted.

Geotagging feature is well implemented.
The testing part will be finished in the next release. It's important.
Please try to implement  firebase APM in the next release.
Also, please don't forget the CI job log analysis in the next release
Just try your best to develop another feature QR Scanner. It's much better if it works. Move forward and good luck!

The account @ggebran only has two commits and three lines of code, and it is not an balanced share of work regarding coding. So please have more contribution on the project. The rest of the team shows relatively equal amounts of work.


Support prefix option for Logback integration

Support prefix option <exportPrefix> for Logback integration to specify the prefix of exported MDC properties.
For example, if this xml is loaded
  <appender name="RCEA" class="com.linecorp.armeria.common.logback.RequestContextExportingAppender">
    <!-- specify the prefix of exported MDC properties -->
    <exportPrefix>armeria</exportPrefix>
    <export>req.*</export>
    <export>res.*</export>
    ...
  </appender>

then RequestContextExportingAppender exports armeria.req.path, armeria.req.service_name, armeria.res.status_code, etc.

Or support prefix attribute like <export prefix="armeria"> ... </export> and <exports prefix="armeria"> ... </exports>.
In this case, we can write the following,
  <appender name="RCEA" class="com.linecorp.armeria.common.logback.RequestContextExportingAppender">
    <!-- append `armeria.` as prefix -->
    <exports prefix="armeria">req.*, res.*</exports>
    <!-- no prefix -->
    <export>some_value=attr:com.example.AttrKeys#SOME_KEY<export>
  </appender>

and RequestContextExportingAppender exports armeria.req.*, armeria.req.*, and some_value.
Note that no prefix is appended to some_value property.

I cannot find how to give an attribute to custom Logback appender in the document and baeldung blog.
So, it may be impossible to support <exports prefix="armeria">...</exports>.

How about allowing an empty value for exportPrefix? e.g.
<exportPrefix>armeria</exportPrefix>
<exports prefix="armeria">req.*, res.*</exports>
<exportPrefix />
<export>some_value=attr:com.example.AttrKeys#SOME_KEY<export>

This basically assumes that the tags are translated into sequential calls to RequestContextExporterBuilder, but I think this assumption will not fail.

If we can assume that the tags are translated sequentially from top to bottom,
supporting only <exportPrefix> (allowing an empty string) is sufficient!

If supporting <exportPrefix> tag is accepted, I'll send a PR ^ ^

<exportPrefix /> looks nice!

If supporting <exportPrefix> tag is accepted, I'll send a PR ^ ^

Thanks in advance. 😉

How about something like:
  <appender name="RCEA" class="com.linecorp.armeria.common.logback.RequestContextExportingAppender">
    <!-- specify the prefix of exported MDC properties -->
    <exports prefix="armeria">
      <export>req.*</export>
      <export>res.*</export>
    </exports>
    ...
  </appender>

I don't know if we can give this xml to custom logback appender.
    <exports prefix="armeria">
      <export>req.*</export>
      ...
    </exports>

Logback uses Javabeans introspection so I thought it's possible but I'm not sure because I never tried that. 😄
Let me try first and then I will tell you if we can do that or not.

Let me try first and then I will tell you if we can do that or not.

Thanks 😭

What I found out so far is that we can do:
  <appender name="RCEA" class="com.linecorp.armeria.common.logback.RequestContextExportingAppender">
    <exportPrefix>
      <prefix>armeria</prefix>
      <export>req.*</export>
      <export>res.*</export>
    </exportPrefix>
    <export>some_value=attr:com.example.AttrKeys#SOME_KEY<export>
    ...
  </appender>

I couldn't find a way to do this:
<exports prefix="armeria">

because it seems like Logback does not support adding the attributes of the nested property.
The exportPrefix class is created here:
https://github.com/qos-ch/logback/blob/v_1.2.3/logback-core/src/main/java/ch/qos/logback/core/joran/action/NestedComplexPropertyIA.java#L121
and just uses the methods to set the values (setter and adder):
https://github.com/qos-ch/logback/blob/v_1.2.3/logback-core/src/main/java/ch/qos/logback/core/joran/util/beans/BeanDescription.java#L16
So there's no inherent function to add the attribute. 🤔

How about <exportGroup> ?
<!-- If not wrapped with exportGroup, all directives go to the 'default export group'. -->
<prefix>...</prefix> <!-- This sets the prefix for all exports in the default export group. -->
<export>...</export>
<exports>...</exports>

<!-- exportGroup creates a new export group. -->
<exportGroup>
  <prefix>...</prefix> <!-- This sets the prefix for the exports in its group only. -->
  <export>...</export>
  <exports>...</exports>
</exportGroup>

<exportGroup>
  <export>...</export>
  <prefix>...</prefix> <!-- A user should be able to specify a prefix later -->
</exportGroup>

<exportGroup>
  <!-- No prefix tag means 'inherit from the default export group. -->
  <export>...</export>
</exportGroup>

One thing to think about is whether we need to allow an empty prefix, i.e. <prefix />. It looks somewhat confusing, so it's probably better throwing an exception? Users can still achieve what they want with proper grouping of exports:
<exportGroup>
  <export>...</export>
</exportGroup>
<exportGroup>
  <prefix>...</prefix>
  <export>...</export>
</exportGroup>

We might also want to an additional tag that excludes some exports:
<!-- Add armeria prefix for all request properties except req.foo. -->
<export>req.foo</export>
<exportGroup>
  <prefix>armeria</prefix>
  <exports>req.*</exports>
  <exclusion>^req\.foo$</exclusion> <!-- regex -->
</exportGroup>

Makes sense?

I'm also curious if a user will ever want to export one property into multiple MDC properties, e.g. req.foo to a.req.foo and b.req.foo:
<exportGroup>
  <prefix>a</prefix>
  <export>req.foo</export>
</exportGroup>
<exportGroup>
  <prefix>b</prefix>
  <export>req.foo</export>
</exportGroup>

IIRC we do not support this use case, or do we?

How about  ?

That looks good. 😄

i.e. . It looks somewhat confusing, so it's probably better throwing an exception?

+1

No prefix tag means 'inherit from the default export group

Shouldn't we also raise an exception because it doesn't mean anything?

Shouldn't we also raise an exception because it doesn't mean anything?

How about just warning?

How about just warning?

That also sounds good.
@okue So we are going to need the class for nesting:
public final class ExportGroupConfiguration { // Named after SslConfiguration
    ...
    public void setPrefix(String prefix) {...}
    public void setExport(String mdcKey) {...}
    public void setExports(String mdcKeys) {...}
	...
}

And add the setter:
public final class RequestContextExportingAppender {
	...
	public void setExportGroup(ExportGroupConfiguration exportGroup) {...}
	...
}

Thank you very mush for surveying how to implement, @minwoox!
<exportGroup> looks good 😄
<exportGroup>
  <prefix>...</prefix>
  <export>...</export>
  <exports>...</exports>
</exportGroup>

BTW, Default export group (<prefix> which isn't surrounded by <exportGroup>) is needed?

I think we need it for backward compatibility. 😅

Aa, let me rephrase that.
Supporting <prefix> for default export group is needed?
Is it bad if the prefix is always empty?

Is it needed to support <prefix> for default export group?

Yes, I guess, because a user may want to add a prefix to all exported properties? It would be somewhat inconvenient to use <exportGroup> just because of that.

Logback uses Javabeans introspection so I thought it's possible but I'm not sure because I never tried that. 😄
Let me try first and then I will tell you if we can do that or not.

Just out of courisity, at first I thought JoranConfigurator seemed like to work for getting attributes. Spring Boot extends it for <springProfile name="..." />. https://howtodoinjava.com/spring-boot2/logging/profile-specific-logging/
I've tried to make a prototype and I realized that it was overkill for the this issue.😅
Because the JoranConfigurator should be initialized before RequestContextExportingAppender that means we may need to make custom initializer...

Yes, if the attributes are defined at the top level like Spring does,
Logback stores it here:
https://github.com/qos-ch/logback/blob/master/logback-core/src/main/java/ch/qos/logback/core/joran/spi/InterpretationContext.java#L46
But for the nested property I couldn't find how to get it easily, and we might need a hack or request the feature.

But for the nested property I couldn't find how to get it easily, and we might need a hack or request the feature.

JFYI. When I tested, nested properties were selected by "*/foobar".

Oh, I never knew that. 😄
If we have more options, then shouldn't we reconsider the XML file?

Another thing to consider is that we might add support for other logging frameworks in the future, e.g. log4j2. We might want to keep the same set of XML tags if possible for consistent user experience.

Had a chat with @trustin and @ikhoon, and we want to go with https://github.com/line/armeria/issues/3086#issuecomment-703116476
because it's simple and easy to implement. 😄

Sounds good 😄

Closed via #3112


modified peft and int8 code for finetuning

-uncommented existing logic for peft
-added handling for int8 in the model (prepare_model_for_int8_training)

Thank you Arnav. I'll merge a version of this that has more options.


distutils deprecation

Nuitka still uses distutils in its own code. This should probably be removed at some point.
python3.10 -c "import distutils"

<string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives

Well, deprecation warnings are disabled in Nuitka, e.g. we use optparse which is deprecated since 3.2, and we support Python 2.6 still, so we are not too hot with it.
That said, distutils used in only one spot, and that is:
def copyTree(source_path, dest_path):
    """Copy whole directory tree, preserving attributes.

    Args:
        source_path: where to copy from
        dest_path: where to copy to, may already exist

    Notes:
        This must be used over `shutil.copytree` which has troubles
        with existing directories.
    """

    from distutils.dir_util import copy_tree

    return copy_tree(source_path, dest_path)

I am open to replacement code, esp. as it's not using the same tricks as copyFileWithPermissions for filesystems that will give errors in attempts to set ACL, which we do not need. So there would even be an immediate benefit. Long term, we are probably going to need a function that scans a directory, and then lets plugins mess with file contents, and the place files individually, maybe in a filesystem, maybe somewhere else, so this will become unused anyway.
Tests use it for no good reason (the comment doesn't apply) to copy python files, and otherwise old plugins, which will be changed to data files, and data files, because it's bad. So maybe we will stop having it anyway.

That said, distutils used in only one spot,

Seems more than one:
git grep distutils nuitka/

nuitka/PythonFlavors.py:            from distutils.dir_util import _multiarch
nuitka/__main__.py:        # only lead to trouble, having e.g. a "distutils" in sys.path that comes
nuitka/__main__.py:        # from "nuitka.distutils".
nuitka/build/inline_copy/lib/scons-2.3.2/SCons/Defaults.py:from distutils.msvccompiler.
nuitka/build/inline_copy/lib/scons-3.1.2/SCons/Defaults.py:from distutils.msvccompiler.
nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py:from distutils.msvccompiler.
nuitka/distutils/DistutilCommands.py:""" Nuitka distutils integration.
nuitka/distutils/DistutilCommands.py:import distutils.command.build  # pylint: disable=I0021,import-error,no-name-in-module
nuitka/distutils/DistutilCommands.py:import distutils.command.install  # pylint: disable=I0021,import-error,no-name-in-module
nuitka/distutils/DistutilCommands.py:# Class name enforced by distutils, must match the command name.
nuitka/distutils/DistutilCommands.py:# Required by distutils, used as command name, pylint: disable=invalid-name
nuitka/distutils/DistutilCommands.py:class build(distutils.command.build.build):
nuitka/distutils/DistutilCommands.py:        distutils.command.build.build.run(self)
nuitka/distutils/DistutilCommands.py:# Required by distutils, used as command name, pylint: disable=invalid-name
nuitka/distutils/DistutilCommands.py:class install(distutils.command.install.install):
nuitka/distutils/DistutilCommands.py:        distutils.command.install.install.finalize_options(self)
nuitka/distutils/DistutilCommands.py:# Required by distutils, used as command name, pylint: disable=invalid-name
nuitka/freezer/Standalone.py:            "distutils",
nuitka/freezer/Standalone.py:        if import_path == "distutils.command":
nuitka/freezer/Standalone.py:        if import_path in ("lib2to3", "json", "distutils"):
nuitka/importing/IgnoreListing.py:        # test_distutils.py
nuitka/importing/IgnoreListing.py:        "distutils.tests",
nuitka/importing/IgnoreListing.py:        "distutils.mwerkscompiler",
nuitka/importing/IgnoreListing.py:        "distutils.emxccompiler",
nuitka/plugins/standard/ImplicitImports.py:        "distutils",  # Not performance relevant.
nuitka/plugins/standard/ImplicitImports.py:        "numpy.distutils",  # Largely unused, and a lot of modules.
nuitka/plugins/standard/ImplicitImports.py:        "numpy.f2py",  # Mostly unused, only numpy.distutils import it.
nuitka/plugins/standard/anti-bloat.yml:  description: "disable distutils hacks"
nuitka/plugins/standard/anti-bloat.yml:  description: "remove numpy.distutils references"
nuitka/plugins/standard/anti-bloat.yml:    - "import numpy.distutils.misc_util"
nuitka/plugins/standard/anti-bloat.yml:    "from numpy.distutils.misc_util import get_shared_lib_extension": ""
nuitka/plugins/standard/anti-bloat.yml:    "get_shared_lib_extension()": "repr(numpy.distutils.misc_util.get_shared_lib_extension())"
nuitka/plugins/standard/anti-bloat.yml:    "get_shared_lib_extension(is_python_ext=True)": "repr(numpy.distutils.misc_util.get_shared_lib_extension(is_python_ext=True))"
nuitka/utils/FileOperations.py:        from distutils.dir_util import copy_tree

numpy.distutils is also of concern: https://github.com/scikit-learn/scikit-learn/issues/21499.

As for numpy.distutils, here's a blog post on how scipy moves to Meson:
https://labs.quansight.org/blog/2021/07/moving-scipy-to-meson/

Everything you greped there is code handling usage of distutils by e.g. numpy. The numpy.distutils inclusion causes a lot of other imports, that is why anti-bloat removes it when enabled, no issue.
Like I said, the nuitka_bdist is for setuptools. I call it distutils. I do not recall seening any Python project not using that for a long time.
Debian package origin is detected by them patching distutils to contain stuff it normally does not and so on.
Standard library inclusion excludes distutils.tests for being pointless, and so on.
I am confident all the other places are not "usage" of Nuitka. With your PR it's 3.12 ready. I only wish I was done with 3.10 :)

This is part of the 0.6.18 release.

So, 3.12 needs a change in setup.py where it monkey patches distutils.utils for the bytecode generation to become optional, which will make this hopefully complete, we shall see.


[Mac-14] Impeller-golden for host_release fails on macOS 14

We're getting ready to upgrade our CI to macOS 14, but Impeller-golden for host_release continuously fails when ran on a Mac-14 staging bot.
Running command "/Volumes/Work/s/w/ir/cache/builder/src/out/ci/mac_release_arm64/dart-sdk/bin/dart --disable-dart-dev bin/golden_tests_harvester.dart /Volumes/Work/s/w/ir/x/t/impeller_goldenb6wwwz8g"
 Failed to add image to Skia Gold: Error when running Skia Gold: /Volumes/Work/s/w/ir/cache/gold/goldctl imgtest add --work-dir /Volumes/Work/s/w/ir/x/t/impeller_goldenb6wwwz8g/temp --test-name impeller_Play_AiksTest_CanDrawPerspectiveTransformWithClips_Metal --png-file /Volumes/Work/s/w/ir/x/t/impeller_goldenb6wwwz8g/impeller_Play_AiksTest_CanDrawPerspectiveTransformWithClips_Metal.png --passfail --add-test-optional-key image_matching_algorithm:fuzzy --add-test-optional-key fuzzy_max_different_pixels:7864 --add-test-optional-key fuzzy_pixel_delta_threshold:8
 Skia Gold received an unapproved image in post-submit
 testing. Golden file images in flutter/engine are triaged
 in pre-submit during code review for the given PR.
 Visit https://flutter-engine-gold.skia.org/ to view and approve
 the image(s), or revert the associated change. For more
 information, visit the wiki:
 https://github.com/flutter/flutter/wiki/Writing-a-golden-file-test-for-package:flutter
 stdout: Given image with hash de921969baa2d9717030338ca621acee for test impeller_Play_AiksTest_CanDrawPerspectiveTransformWithClips_Metal
 Expectation for test: 34b6d09b8f69f6e98001c212a8505aae (positive)
 Expectation for test: 6d37d54bf99c4c61df64497f318622d1 (positive)
 Fetching most recent positive digest for trace with ID "ea8697f805ff2d58b9e4c29be6b24923".
 Non-exact image comparison using algorithm "fuzzy" against most recent positive digest "6d37d54bf99c4c61df64497f318622d1".
 Untriaged or negative image: https://flutter-engine-gold.skia.org//detail?grouping=name%3Dimpeller_Play_AiksTest_CanDrawPerspectiveTransformWithClips_Metal%26source_type%3Dflutter-engine&digest=de921969baa2d9717030338ca621acee
 stderr: Test: impeller_Play_AiksTest_CanDrawPerspectiveTransformWithClips_Metal FAIL
 Unhandled exception:
 Failed comparison: impeller_Play_AiksTest_CanDrawPerspectiveTransformWithClips_Metal.png
 #0      harvest.<anonymous closure> (package:golden_tests_harvester/golden_tests_harvester.dart:178:7)
 #1      _FutureListener.handleError (dart:async/future_impl.dart:181:22)
 #2      Future._propagateToListeners.handleError (dart:async/future_impl.dart:873:47)
 #3      Future._propagateToListeners (dart:async/future_impl.dart:894:13)
 #4      Future._completeError (dart:async/future_impl.dart:674:5)
 <asynchronous suspension>

https://ci.chromium.org/b/8746478703122747313
https://ci.chromium.org/b/8746413109650410993
Perhaps the image just needs to be approved? From what I can tell, the difference is undistinguishable

How are we doing this migration? I would expect that changing the OS version would change goldens? Feel free to loop anyone from impeller/engine into this.

We can just approve these images if they're small too? Is that the only diff?

The plan is to allow tests to run on Mac-13 or 14 and then upgrade 50% of the fleet: https://github.com/flutter/flutter/issues/148870
I've been running each test manually on a experimental Mac-14 bot via led to validate tests pass before we make the upgrade: https://github.com/flutter/flutter/issues/148877
This is the only engine test that has failed and that is the only diff

Do you want me to approve it? Or you can - I trust you. its fine to just go ahead and approve very small % diffs.

Do you want me to approve it? Or you can - I trust you. its fine to just go ahead and approve very small % diffs.

Okay good to know, I'll go ahead and approve it and verify it fixes. Thanks!

Verified that approving the golden diff fixed: https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac Production Engine Drone/67/overview
https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac Production Engine Drone/68/overview


Code formatting doesn't work on long lines with commas.

From @rajinder-yadav on October 29, 2016 22:11

VSCode Version: Code 1.6.1 (9e4e44c19e393803e2b05fe2323cf4ed7e36880e, 2016-10-13T15:43:46.054Z)
OS Version: Linux x64 4.4.0-45-generic
Extensions: DavidAnson.vscode-markdownlint-0.5.0, EditorConfig.EditorConfig-0.3.4, ajhyndman.jslint-1.2.1, dbaeumer.jshint-0.10.15, dbaeumer.vscode-eslint-1.0.8, eg2.tslint-0.5.39, jakethashi.vscode-angular2-emmet-1.0.9, ms-vscode.cpptools-0.9.2, msjsdiag.debugger-for-chrome-2.1.1, vscodevim.vim-0.4.0

Steps to Reproduce:

Type following line in code

import { Component, OnInit, OnChanges, DoCheck, AfterContentInit, AfterContentChecked, AfterViewInit, AfterViewChecked } from '@angular/core';

Format code, nothing happen. I expect "column formating" after the commas like this:

import { Component,
         OnInit,
         OnChanges,
         DoCheck,
         AfterContentInit,
         AfterContentChecked,
         AfterViewInit,
         AfterViewChecked } from '@angular/core';

Copied from original issue: Microsoft/vscode#14703

From @rajinder-yadav on October 30, 2016 21:4
~:$ tsc -v
Version 2.0.3

From @akintundejr4 on October 30, 2016 17:39
What typescript version are you using?

The formatter does not add new lines between properties, array elements or imports.


Scheduler | Month view not showing multi-day events corrently when starts last on day

Describe the bug
If there are more than displayable events on a day, and the last event is a multi-day event, the id doesn't show on the next day, but takes the first slot on the next day in the month view.
To Reproduce
Steps to reproduce the behavior:

Add more than 3 events on one day
Have the last event take time on the next day
Notice that it is not displayed the next day, but occupies the space

Expected behavior
Display multi-day events correctly also on the next day.
Screenshots

Desktop:

OS: WIN 11
Browser: Chrome
Version: 5.6.7

Hi @w3ori,
Please let us know how to reproduce this problem here (you can edit the demo source).

Hi @w3ori,
Please let us know how to reproduce this problem here (you can edit the demo source).

Hi,
this is the test list for appointments:
IList<Appointment> appointments = new List<Appointment>
    {
        new Appointment { Start = DateTime.Today.AddDays(-2), End = DateTime.Today.AddDays(-2), Text = "Birthday" },
        new Appointment { Start = DateTime.Today.AddDays(-11), End = DateTime.Today.AddDays(-10), Text = "Day off" },
        new Appointment { Start = DateTime.Today.AddDays(-10), End = DateTime.Today.AddDays(-8), Text = "Work from home" },
        new Appointment { Start = DateTime.Today.AddHours(10), End = DateTime.Today.AddHours(12), Text = "Online meeting" },
        new Appointment { Start = DateTime.Today.AddHours(10), End = DateTime.Today.AddHours(13), Text = "Skype call" },
        new Appointment { Start = DateTime.Today.AddHours(14), End = DateTime.Today.AddHours(14).AddMinutes(30), Text = "Dentist appointment" },
        new Appointment { Start = DateTime.Today.AddHours(22), End = DateTime.Today.AddDays(1).AddHours(2), Text = "Multi-day event" }, // this is my test event
        new Appointment { Start = DateTime.Today.AddDays(1), End = DateTime.Today.AddDays(2), Text = "Vacation" },
    };

Got it! Thanks.


feat: complete and auto import components from .vue files

Codecov Report

Merging #86 (d543519) into master (c3d449a) will increase coverage by 1.57%.
The diff coverage is 62.32%.

@@            Coverage Diff             @@
##           master      #86      +/-   ##
==========================================
+ Coverage   59.26%   60.83%   +1.57%
==========================================
  Files          50       51       +1
  Lines        3461     3575     +114
  Branches     1134     1179      +45
==========================================
+ Hits         2051     2175     +124
+ Misses       1410     1400      -10

Impacted Files
Coverage Δ

...ckages/analyze/src/project/ConfiguredVueProject.ts
0.00% <0.00%> (ø)

packages/typescript-plugin-vue/src/context.ts
70.24% <0.00%> (ø)

...escript-plugin-vue/src/features/refactors/index.ts
100.00% <ø> (ø)

...ckages/typescript-plugin-vue/src/helpers/logger.ts
100.00% <ø> (ø)

packages/typescript-plugin-vue/src/servers/vue.ts
50.63% <0.00%> (+0.95%)
:arrow_up:

...kages/typescript-plugin-vue/src/servers/routing.ts
64.85% <61.64%> (+5.83%)
:arrow_up:

...lugin-vue/src/transforms/registerLocalComponent.ts
66.66% <66.66%> (ø)

packages/analyze/src/project/VueProject.ts
79.66% <70.58%> (-3.68%)
:arrow_down:

packages/analyze/src/component.ts
76.47% <100.00%> (+17.64%)
:arrow_up:

...tual-textdocument/src/documents/VueTextDocument.ts
78.40% <100.00%> (+0.52%)
:arrow_up:

... and 10 more

Continue to review full report at Codecov.

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


spyder has a encountered problem

Description
What steps will reproduce the problem?

What is the expected output? What do you see instead?
Please provide any additional information below
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\spyder\plugins_init_.py", line 511, in
toggled=lambda checked: self.toggle_view(checked),
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\spyder\plugins\ipythonconsole.py", line 725, in toggle_view
self.create_new_client(give_focus=False)
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1033, in create_new_client
self.connect_client_to_kernel(client)
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1059, in connect_client_to_kernel
stderr_file)
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1485, in create_kernel_manager_and_kernel_client
kernel_manager.start_kernel(stderr=stderr)
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\jupyter_client\manager.py", line 258, in start_kernel
**kw)
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\jupyter_client\manager.py", line 203, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File "C:\Users\hanxuan\Anaconda3\lib\site-packages\jupyter_client\launcher.py", line 128, in launch_kernel
proc = Popen(cmd, **kwargs)
File "C:\Users\h

Thanks for reporting. While the error traceback is incomplete, it is an apparent duplicate of #4958 (and its more recent reincarnation, #6319 ), which should be fixed in the next Spyder release. Therefore, this issue will be closed. In the meantime, you can fix it yourself by either:

Running spdyer --reset from the Anaconda prompt, or
Going to Preferences > Python interpreter and selecting either the default interpreter or a new, valid custom one.


Race between ftl status showing a deployment is live, and the cached routing table

This can lead clients to think that a request will route, and it will fail (as seen in the integration tests).

@alecthomas says "I fixed that...I think."


SDK uses jackson annotation from shaded jar instead of main package

Describe the bug
The SDK uses jackson for serialisation and deserialisation. The sdk's jackson enforces the user to use annotation from unlogged sdk in there project like selogger.com.fasterxml.jackson.annotation instead of using the annotation from main jackson package like com.fasterxml.jackson.annotation.
This forces the user to modify the code base in few places for the SDK to work properly.
Reproduction steps
Project: unlogged-spring-maven-demo
Class: SessionExceptions
Pojo: Department and Employee

Direct invoke SessionExceptions with both pojos having @JsonManagedReference and @JsonBackReference from selogger.com.fasterxml.jackson. In mock created for findAll, hover over the output value. It will be populated correctly with data.
Modify pojos to use annotations from  com.fasterxml.jackson. Mock value will now throw an infinite recursion stack trace, since the SDK did not use the annotation values.

Expected behaviour
The SDK should use the annotation of main jackson package.

RCA:

Default implementation of findReferenceType in JacksonAnnotationIntrospector checks if a fields has the annotation of type JsonManagedReference or JsonBackReference. But when that check happens, these class gets resolved to classes inside SDK like selogger.com.fasterxml.jackson.annotation.JsonManagedReference.
When user also uses selogger.com.fasterxml.jackson, then issue does not comes since the pojo field are indeed annotated with the annotations.
When user uses just com.fasterxml.jackson them the match fails.

Proposed fix:

findReferenceType can be modified to check for both classes inside selogger and in main jackson package.
_findAnnotation is the downstream call from all methods including findReferenceType to check presence of annotation. This can be modified to check annotations inside and outside of selogger package.

This is resolved in PR #110


Sync RHODS rhods-1.30 branch with ODH/notebook-controller v1.7 branch

Sync RHODS rhods-1.30 branch with ODH/notebook-controller v1.7 branch
JIRA: https://issues.redhat.com/browse/RHODS-8367
UPSTREAM ISSUE: https://github.com/opendatahub-io/kubeflow/issues/55
This PR contains PR commits from ODH notebook-controller,
commits from the following PR are being synced to the master.

https://github.com/opendatahub-io/kubeflow/pull/97
https://github.com/opendatahub-io/kubeflow/pull/102
https://github.com/opendatahub-io/kubeflow/pull/101
https://github.com/opendatahub-io/kubeflow/pull/110
https://github.com/opendatahub-io/kubeflow/pull/124

Merging these as they are synced up pr's and already tested upstream.
Please drop a comment if you feel other wise.


Question about the data processing phase

Dear authors,
I'm tring to reimplement the whole process. However when deal with MIMIC-CXR datasets with data_process.sh script, I found that the caption.csv file is almost blanket. Should I rearrange the dataset( dicom to jpg, establish the image-txt croessponding csv) or there are already prepared ones? Thanks.

Hello, where did data_process.sh script come from? I can't find it.

That's in the google drive/ Baidu Cloud. ./A1_DATA/MIMIC-CXR/data_preprocess

Okay, thank you very much！

Hi, I can't find radgraph_entity_graphes.json in ../A1_DATA/MIMIC-CXR/json_preprocess/

Hi, The file was too large and I ran out of space on Google Drive, so I uploaded it to Baidu Netdisk. https://pan.baidu.com/s/1rozuHHsducL2S0NX4Hs4Tg?pwd=7ncb  code: 7ncb

Okay，thank you.

I'm sorry, I can't find MRSTY.csv in ../A1_DATA/UMLS/.

Me too, I also can't find  MRSTY.csv  anywhere.

upload to https://github.com/xiaoman-zhang/KAD/blob/main/A1_DATA/UMLS/MRSTY.csv

Much appreciate.


JS: autoLinkWithJson mutates one the json input param

The json parameter passed into autoLinkWithJSON gets mutated here: https://github.com/twitter/twitter-text/blob/master/js/twitter-text.js#L683
The means that if you have tweet text with emoji at the start, and some links / usernames after the emoji, and call autoLinkWithJSON with the text and entities twice, it'll give you a different result each time.

Ok, I'm looking for a fix today, and am able to reproduce. Thanks.
My references:
Emoji tweet example: https://twitter.com/wazatreee/status/586654259661250561
Original issue: https://github.com/twitter/twitter-text-js/pull/123

Any idea when this will be resolve? My new project (http://🍕💩.ws)[http://🍕💩.ws] will be sending a lot of emoji links to Twitter.

I'm also looking for a fix to this.

I'm also looking for a fix to this.


BinaryCrossentropy should support a way to reduce over NO axes

Currently, we do not support a way to reduce over no axes inbackend.mean.
In https://github.com/keras-team/keras/blob/c9068087d9142bab573e0c300bf9874a957accff/keras/losses.py#L2162 this means we cannot use the Keras BinaryCrossentropy loss for YOLOx model.
@quantumalvya needs a way to avoid reducing over any axis, lets support this in the backend.mean() function: https://github.com/keras-team/keras/blob/c9068087d9142bab573e0c300bf9874a957accff/keras/backend.py#L2899

Is the underline it uses TF reduce_mean: https://www.tensorflow.org/api_docs/python/tf/math/reduce_mean
Where the axis=None semantic means "all the axis".
So what do you mean with avoid reducing over any axis?

@LukeWood can you expand on the requirement here?
Perhaps some example code demonstrating this need would be useful. I'm curious why we would need to use binary_crossentropy as a loss without any reduction. Can the use case be solved using keras.backend.binary_crossentropy, which doesn't perform reduction?

Sarvagya can you comment here?  (pinged him a link as I can't tag him yet)

Where the axis=None semantic means "all the axis".
So what do you mean with avoid reducing over any axis?

As in the loss should return without reducing the mean over any axis at all. axis=None means over all axes but we require no reduction for YoloX.

Perhaps some example code demonstrating this need would be useful.

Currently implementing this in the YoloX implementation as such:
        if self.axis is not None:
            return tf.reduce_mean(
                tf.keras.backend.binary_crossentropy(
                    y_true, y_pred, from_logits=self.from_logits
                ),
                axis=self.axis,
            )
        return tf.keras.backend.binary_crossentropy(
            y_true, y_pred, from_logits=self.from_logits
        )

I'm curious why we would need to use binary_crossentropy as a loss without any reduction.  Can the use case be solved using keras.backend.binary_crossentropy, which doesn't perform reduction?

YoloX sums over the axis internally and then means based on the number of positive number boxes (as calculated by SimOTA). If we mean over the number of examples, it would be inaccurate. keras.backend.binary_crossentropy can achieve it, yes. However, we want to offer support for losses passed through compile(). I have currently made an internal loss as part of my implementation.

Sarvagya can you comment here? (pinged him a link as I can't tag him yet)

It was just misspelled.

YoloX sums over the axis internally and then means based on the number of positive number boxes (as calculated by SimOTA). If we mean over the number of examples, it would be inaccurate. keras.backend.binary_crossentropy can achieve it, yes. However, we want to offer support for losses passed through compile(). I have currently made an internal loss as part of my implementation.

I think that it make more sense to create another BinaryCrossentropy like BinaryCrossentropyFocal or add an extra parameter to make the mean optional in BinaryCrossentropy instead of modifying mean.

YoloX sums over the axis internally

Does this mean that you could reduce sum and then divide by positive_boxes?

I think that it make more sense to create another BinaryCrossentropy like BinaryCrossentropyFocal or add an extra parameter to make the mean optional in BinaryCrossentropy instead of modifying mean.

Does this mean that you could reduce sum and then divide by positive_boxes?

Yes, as for now, I have implemented an internal loss specifically for YoloX which does reduce_sum followed by the number of positive boxes.

Yes also in the official reference impl the reduction is more in the BinaryCrossentropy API more then in mean:
https://github.com/Megvii-BaseDetection/YOLOX/blob/main/yolox/models/yolo_head.py#L493-L495

This reduction over any axis is even plain wrong. I reported on it here: https://github.com/keras-team/keras/issues/17766

If anyone else is looking for this, FYI this is already possible (although not easily discoverable) by using binary_crossentropy(y_true, y_pred, axis=[]).
Before I found that one, I was using another workaround: binary_crossentropy(tf.expand_dims(y_true, -1), tf.expand_dims(y_pred, -1))


Recover suspended accounts

I suffer from epilepsy. Please help me recover my account. If you do not have the authority to recover the account, please send this message to someone who can help me recover the account. I do not want to go to the hospital because of my loss of the account. There is a chronic headache due to illness and thinking about the account. Please help me. I will pray to you
Action for: @elonmusk, @ellagirwin
@TwitterSafety
@KylieMTweets
@co_hurricane
@MurphEng, &
@TwitterSupport
SUSPENDED Accounts for General Amnesty
@chinanws22 .

Hi @leahculver @nshanawani @ellagirwin @iuliabaltoi @kcoleman
@emilycfortner @elonmusk
My friend will not be able to create a new account. Why can this problem be
fixed please?
@chinanws22
في السبت، ١١ مارس ٢٠٢٣ ٢:٤٠ ص catgirl-doll @.***> كتب:

Irrelevant to Twemoji. Please close.
—
Reply to this email directly, view it on GitHub
https://github.com/twitter/twemoji/issues/591#issuecomment-1464648984,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2PT4FWUVNBZH4QSH25XVB3W3O3W7ANCNFSM6AAAAAAUZVUMOE
.
You are receiving this because you authored the thread.Message ID:
@.***>

@ellagirwin
@leahculver @ptraughber @iuliabaltoi @kcoleman @emilycfortner @elonmusk
@TwitterSupport
Is there a solution to this strange problem four days ago? My friend
changed the password, but the problem remains and the numbers are not
returned, as was said
في الأحد، ١٢ مارس ٢٠٢٣ ٦:١٦ ص منير الدبعي @.***> كتب:

Hi @leahculver @nshanawani @ellagirwin @iuliabaltoi @kcoleman
@emilycfortner @elonmusk
My friend will not be able to create a new account. Why can this problem
be fixed please?
@chinanws22
في السبت، ١١ مارس ٢٠٢٣ ٢:٤٠ ص catgirl-doll @.***> كتب:

Irrelevant to Twemoji. Please close.
—
Reply to this email directly, view it on GitHub
https://github.com/twitter/twemoji/issues/591#issuecomment-1464648984,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2PT4FWUVNBZH4QSH25XVB3W3O3W7ANCNFSM6AAAAAAUZVUMOE
.
You are receiving this because you authored the thread.Message ID:
@.***>

I suffer from epilepsy. Please help me recover my account. If you do not have the authority to recover the account, please send this message to someone who can help me recover the account. I do not want to go to the hospital because of my loss of the account. There is a chronic headache due to illness and thinking about the account. Please help me. I will pray to you
Action for: @ElonMusk, @ellagirwin
@TwitterSafety
@KylieMTweets
@co_hurricane
@MurphEng, &
@TwitterSupport
SUSPENDED Accounts for General Amnesty
@chinanws22 .

Same thing happened to me but thanks to Blackhathacker111 who helped me get recovered my lost account ,message him on telegram his telegram username is https://t.me/Blackhathacker111


Added navbar-4

@basuinfotech Resolved merge conflicts

Can you please rename your navbar-4 folder name to navbar-6 , because navbar 4 and navbar 5 already exists 😞 .... sorry for your inconvenience.

@basuinfotech Made necessary changes. Please review #39


ci: add github actions setup

This adds a GitHub actions setup that will run the tests on linux, mac, and windows, and in
parallel run a lint job that will run tsc and eslint.
The [skip ci]/[ci skip] handling is native in GitHub actions, and this could be extended in
future to archive the vsix or release the extension if required
An example of the run can be found here https://github.com/ewanharris/vscode-appcelerator-titanium/actions/runs/614571084

Messages

:book:

:white_check_mark: All tests are passing
Nice one! All 32 tests are passing.

:book:

:floppy_disk: Here's the built vsix for this change.

cross-env
Author: Kent C. Dodds
Description: Run scripts that set and use environment variables across platforms
Homepage: https://github.com/kentcdodds/cross-env#readme

Createdover 5 years agoLast Updated3 months agoLicenseMITMaintainers1Releases48Direct Dependenciescross-spawnKeywordscross-environment, environment variable and windows

This README is too long to show.
New dependencies added: cross-env.

  Generated by :no_entry_sign: dangerJS against 801fdcda50e1af768ef607a8d6ad0c9ed4c31fb9


EntityProxyDataStream - Fix empty array on main thread access

@jkeon Feel free to tag this for further improvement or future fixing in an issue. This was a naive attempt at fixing the issue.
What is the current behaviour?
Using the deferred array in a synchronous context always results in a 0 length array.
What is the new behaviour?
EntityProxyDataStream now correctly detects when the read dependency is complete and constructs a normal NativeArray<T> and passes that into the DataStreamActiveReader.
What issues does this resolve?

None

What PRs does this depend on?

None

Does this introduce a breaking change?

[ ] Yes
[x] No

Comments addressed. Ready for re-review


make all message() calls conform to verbose

Maybe this was intentional, but I always find it weird to send out message()s when verbose=FALSE. This PR makes it consistent.
If it is intentional, maybe you can changes the docs ("Whether to print status messages during each step of the pipeline.") to say what it actually does.

Ok it is all merged and pushed to Bioconductor release and devel now. There was a mess with the version numbers because I hadn't yet pulled the updated version numbers from the Bioconductor 3.9 release last week, so I had to cherry-pick the commits across instead (and add new commits to fix the version numbers).


Correction documentation (article reviewer)

:x: Build SMT 0.2.477 failed (commit https://github.com/SMTorg/SMT/commit/dff8e7722e by @bouhlelma)

Pull Request Test Coverage Report for Build 441

13 of 15 (86.67%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.315%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

smt/sampling_methods/lhs.py
3
5
60.0%

Totals

Change from base Build 434:
0.0%

Covered Lines:
2450

Relevant Lines:
3253

💛  - Coveralls


Checkbox fieldValue issue fix

Fixed issue when checkbox field allways recieves "" value.
The dict.get('V') returns an object and when the stringToPDFString function runs it allways returns "", since the str is from type object.

First of all, please provide a test-case that can be used to confirm that the patch works as intended.
Second of all, I don't think that it's correct to modify the stringToPDFString utility function, but you should rather modify the code in annotation.js that does dict.get('V').


Skip docs and benchmarks on dependabot PRs

I think this should fix the dependabot problems. Once merged, we can tell it to rebase its PRs to check.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.033%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5970

Relevant Lines:
6282

💛  - Coveralls


chore: Added one link for ui generation

chore: Add one link(https://fffuel.co/) for UI generation. fffuel is a collection of color tools and free SVG generators for gradients, patterns, textures, shapes & backgrounds.
Closes #758

Hey @CBID2, let me know if this PR works!!!


LDAP Connector ERROR: handling identity, but example app auth succeeds

Hi dex dev,
I am currently testing out dex and encountered this issue while using the example app with LDAP connector. I was able to log in and obtain token from the fake email handler but worker debug log shows the following error. Is there anyway to get even more debug out to figure out why exactly I am encountering this error output?
INFO: <IP_ADDRESS> - - [06/Jul/2016:16:01:03 -0700] "GET /auth/ldap/callback/login?prompt=&session_key=05W7UWD9DpM%3D HTTP/1.1" 200 25382
ERROR: handling identity
INFO: Session ITMHm4wDaps= remote identity attached<EMAIL_ADDRESS>identity=oidc.Identity{ID:"uid=tuser,ou=users,dc=dex,dc=ca", Name:"Test User"<EMAIL_ADDRESS>ExpiresAt:time.Time{sec:0, nsec:0, loc:(*time.Location)(nil)}}
INFO: Session ITMHm4wDaps= user identified<EMAIL_ADDRESS>user=user.User{ID:"8730c7d1-8560-4565-87ce-35a9c6076876", DisplayName:""<EMAIL_ADDRESS>EmailVerified:true, Admin:false, Disabled:false, CreatedAt:time.Time{sec:63603428663, nsec:0, loc:(*time.Location)(0xfd84c0)}}
INFO: <IP_ADDRESS> - - [06/Jul/2016:16:01:07 -0700] "POST /auth/ldap/callback/login?prompt=&session_key=05W7UWD9DpM%3D HTTP/1.1" 302 0

@rudyzhou2 sorry for the delayed response. I've been out of the office for a week.
Can you provide the connector config JSON? Also what version (or checkout) of dex are you using?

Hi @ericchiang,
No problem!
`[
{
"type": "ldap",
"id": "ldap",
"host": "<IP_ADDRESS>:389",
"useTLS": false,
"useSSL": false,
"baseDN": "ou=users,dc=dex,dc=ca",
    "searchBeforeAuth": true,
    "searchFilter": "(&(objectClass=posixAccount)(uid=%u))",
    "searchScope": "sub",

    "searchBindDN": "cn=readonly,dc=dex,dc=ca",
    "searchBindPw": "readonly"
}

]`
dex version 0.5.1 go version 1.5.3

And here is the commit
commit f816cfb1876f9228483c38d1a1e05e7c31aac801
Merge: 84f36b1 e22829c
Author: Eric Chiang<EMAIL_ADDRESS>Date:   Thu Jun 30 15:48:26 2016 -0700

    Merge pull request #499 from samueldg/fix_docs_typos

    docs: fix various typos & Markdown lint issues

This looks like an erroneous logging statement[0]
To be clear you're not actually experiencing errors, you're only seeing that logging statement?
[0] https://github.com/coreos/dex/blob/f816cfb1876f9228483c38d1a1e05e7c31aac801/connector/connector_ldap.go#L443

Hi Eric,
Yes it seems like the I am only seeing the logging statement with no issues on auth. I will try the new commit and report back asap!
Thanks!
Cheers,
Rudy


getting into a strange state after modifying zshrc

I started the butterfish shell and the little fish shows up.   then i went to add some aliases in my zshrc related to butterfish and the fish goes away after source ~/.zshrc.   does the presence of the fish emoji or its absence indicate the state of the wrapper?
➜  code brew install bakks/bakks/butterfish && butterfish shell
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
ansible@7              fastgron               libint                 openfga                tern
apko                   git-credential-oauth   libomemo-c             procps@3               votca
aws-amplify            joshuto                libpaho-mqtt           shodan                 wzprof
bashate                libecpint              melange                spotify_player         xbyak
ddns-go                libfastjson            nexttrace              swift-outdated
==> New Casks
chatbox                dintch                 eusamanager            lasso                  processmonitor
copilot                engine-dj              filemonitor            loupedeck              tea
craft                  eu                     firefly-shimmer        motu-m-series          yealink-meeting

You have 35 outdated formulae and 2 outdated casks installed.

Warning: bakks/bakks/butterfish 0.0.31 is already installed and up-to-date.
To reinstall 0.0.31, run:
  brew reinstall butterfish
Logging to /var/tmp/butterfish.log

➜  code export PS1="$PS1🐠 "
➜  code 🐠
➜  code 🐠 butterfish prompt "please add `alias bf="butterfish"` to my zshrc file"
I'm sorry, but I cannot add anything to your zshrc file as I am an AI language model and do not have access to your computer's file system. However, I can provide you with instructions on how to edit your zshrc file.

To edit your zshrc file, follow these steps:

1. Open your terminal.
2. Type `nano ~/.zshrc` and press Enter. This will open your zshrc file in the Nano text editor.
3. Make the necessary changes to your zshrc^C
➜  code 🐠 code ~/.zshrc
➜  code 🐠 source ~/.zshrc
➜  code bf
Usage: butterfish <command>

Do useful things with LLMs from the command line, with a bent towards software engineering.

Butterfish is a command line tool for working with LLMs. It has two modes: CLI command mode, used to prompt LLMs,
summarize files, and manage embeddings, and Shell mode: Wraps your local shell to provide easy prompting and
autocomplete.

Butterfish stores an OpenAI auth token at ~/.config/butterfish/butterfish.env and the prompt wrappers it uses at
~/.config/butterfish/prompts.yaml.

To print the full prompts and responses from the OpenAI API, use the --verbose flag. Support can be found at
https://github.com/bakks/butterfish.

If you don't have OpenAI free credits then you'll need a subscription and you'll need to pay for OpenAI API use. If
you're using Shell Mode, autosuggest will probably be the most expensive part. You can reduce spend here by disabling
shell autosuggest (-A) or increasing the autosuggest timeout (e.g. -t 2000). See "butterfish shell --help".

v0.0.31 darwin arm64 (commit 8cc7f94) (built 2023-04-21T02:11:22Z) MIT License - Copyright (c) 2023 Peter Bakkum

Flags:
  -h, --help       Show context-sensitive help.
  -v, --verbose    Verbose mode, prints full LLM prompts.

Commands:
  shell
    Start the Butterfish shell wrapper. This wraps your existing shell, giving you access to LLM prompting by
    starting your command with a capital letter. LLM calls include prior shell context. This is great for keeping a
    chat-like terminal open, sending written prompts, debugging commands, and iterating on past actions.

    Use:

      - Type a normal command, like 'ls -l' and press enter to execute it

      - Start a command with a capital letter to send it to GPT, like 'How do I find local .py files?'

      - Autosuggest will print command completions, press tab to fill them in

      - Type 'Status' to show the current Butterfish configuration

      - GPT will be able to see your shell history, so you can ask contextual questions like 'why didn't my last
        command work?'

        Here are special Butterfish commands:

      - Status : Show the current Butterfish configuration

      - Help : Give hints about usage

    If you don't have OpenAI free credits then you'll need a subscription and you'll need to pay for OpenAI API use.
    If you're using Shell Mode, autosuggest will probably be the most expensive part. You can reduce spend here by
    disabling shell autosuggest (-A) or increasing the autosuggest timeout (e.g. -t 2000).

  prompt [<prompt> ...]
    Run an LLM prompt without wrapping, stream results back. This is a straight-through call to the LLM from the
    command line with a given prompt. This accepts piped input, if there is both piped input and a prompt then they
    will be concatenated together (prompt first). It is recommended that you wrap the prompt with quotes. The default
    GPT model is gpt-3.5-turbo.

  summarize [<files> ...]
    Semantically summarize a list of files (or piped input). We read in the file, if it is short then we hand it
    directly to the LLM and ask for a summary. If it is longer then we break it into chunks and ask for a list of
    facts from each chunk (max 8 chunks), then concatenate facts and ask GPT for an overall summary.

  gencmd <prompt> ...
    Generate a shell command from a prompt, i.e. pass in what you want, a shell command will be generated. Accepts
    piped input. You can use the -f command to execute it sight-unseen.

  rewrite <prompt>
    Rewrite a file using a prompt, must specify either a file path or provide piped input, and can output to stdout,
    output to a given file, or edit the input file in-place. This command uses the OpenAI edit API rather than the
    completion API.

  exec [<command> ...]
    Execute a command and try to debug problems. The command can either passed in or in the command register (if you
    have run gencmd in Console Mode).

  index [<paths> ...]
    Recursively index the current directory using embeddings. This will read each file, split it into chunks,
    embed the chunks, and write a .butterfish_index file to each directory caching the embeddings. If you re-run this
    it will skip over previously embedded files unless you force a re-index. This implements an exponential backoff
    if you hit OpenAI API rate limits.

  clearindex [<paths> ...]
    Clear paths from the index, both from the in-memory index (if in Console Mode) and to delete .butterfish_index
    files. Defaults to loading from the current directory but allows you to pass in paths to load.

  loadindex [<paths> ...]
    Load paths into the index. This is specifically for Console Mode when you want to load a set of cached indexes
    into memory. Defaults to loading from the current directory but allows you to pass in paths to load.

  showindex [<paths> ...]
    Show which files are present in the loaded index. You can pass in a path but it defaults to the current
    directory.

  indexsearch <query>
    Search embedding index and return relevant file snippets. This uses the embedding API to embed the search string,
    then does a brute-force cosine similarity against every indexed chunk of text, returning those chunks and their
    scores.

  indexquestion <question>
    Ask a question using the embeddings index. This fetches text snippets from the index and passes them to the LLM
    to generate an answer, thus you need to run the index command first.

Run "butterfish <command> --help" for more information on a command.

butterfish: error: expected one of "shell",  "prompt",  "summarize",  "gencmd",  "rewrite",  ...
➜  code code ~/.zshrc
➜  code source ~/.zshrc
➜  code source ~/.zshrc
➜  code bfs
Logging to /var/tmp/butterfish.log
Butterfish shell is already running, cannot wrap shell again (detected with BUTTERFISH_SHELL env var).
➜  code bfp
Usage: butterfish <command>

Do useful things with LLMs from the command line, with a bent towards software engineering.

Butterfish is a command line tool for working with LLMs. It has two modes: CLI command mode, used to prompt LLMs,
summarize files, and manage embeddings, and Shell mode: Wraps your local shell to provide easy prompting and
autocomplete.

Butterfish stores an OpenAI auth token at ~/.config/butterfish/butterfish.env and the prompt wrappers it uses at
~/.config/butterfish/prompts.yaml.

To print the full prompts and responses from the OpenAI API, use the --verbose flag. Support can be found at
https://github.com/bakks/butterfish.

If you don't have OpenAI free credits then you'll need a subscription and you'll need to pay for OpenAI API use. If
you're using Shell Mode, autosuggest will probably be the most expensive part. You can reduce spend here by disabling
shell autosuggest (-A) or increasing the autosuggest timeout (e.g. -t 2000). See "butterfish shell --help".

v0.0.31 darwin arm64 (commit 8cc7f94) (built 2023-04-21T02:11:22Z) MIT License - Copyright (c) 2023 Peter Bakkum

Flags:
  -h, --help       Show context-sensitive help.
  -v, --verbose    Verbose mode, prints full LLM prompts.

Commands:
  shell
    Start the Butterfish shell wrapper. This wraps your existing shell, giving you access to LLM prompting by
    starting your command with a capital letter. LLM calls include prior shell context. This is great for keeping a
    chat-like terminal open, sending written prompts, debugging commands, and iterating on past actions.

    Use:

      - Type a normal command, like 'ls -l' and press enter to execute it

      - Start a command with a capital letter to send it to GPT, like 'How do I find local .py files?'

      - Autosuggest will print command completions, press tab to fill them in

      - Type 'Status' to show the current Butterfish configuration

      - GPT will be able to see your shell history, so you can ask contextual questions like 'why didn't my last
        command work?'

        Here are special Butterfish commands:

      - Status : Show the current Butterfish configuration

      - Help : Give hints about usage

    If you don't have OpenAI free credits then you'll need a subscription and you'll need to pay for OpenAI API use.
    If you're using Shell Mode, autosuggest will probably be the most expensive part. You can reduce spend here by
    disabling shell autosuggest (-A) or increasing the autosuggest timeout (e.g. -t 2000).

  prompt [<prompt> ...]
    Run an LLM prompt without wrapping, stream results back. This is a straight-through call to the LLM from the
    command line with a given prompt. This accepts piped input, if there is both piped input and a prompt then they
    will be concatenated together (prompt first). It is recommended that you wrap the prompt with quotes. The default
    GPT model is gpt-3.5-turbo.

  summarize [<files> ...]
    Semantically summarize a list of files (or piped input). We read in the file, if it is short then we hand it
    directly to the LLM and ask for a summary. If it is longer then we break it into chunks and ask for a list of
    facts from each chunk (max 8 chunks), then concatenate facts and ask GPT for an overall summary.

  gencmd <prompt> ...
    Generate a shell command from a prompt, i.e. pass in what you want, a shell command will be generated. Accepts
    piped input. You can use the -f command to execute it sight-unseen.

  rewrite <prompt>
    Rewrite a file using a prompt, must specify either a file path or provide piped input, and can output to stdout,
    output to a given file, or edit the input file in-place. This command uses the OpenAI edit API rather than the
    completion API.

  exec [<command> ...]
    Execute a command and try to debug problems. The command can either passed in or in the command register (if you
    have run gencmd in Console Mode).

  index [<paths> ...]
    Recursively index the current directory using embeddings. This will read each file, split it into chunks,
    embed the chunks, and write a .butterfish_index file to each directory caching the embeddings. If you re-run this
    it will skip over previously embedded files unless you force a re-index. This implements an exponential backoff
    if you hit OpenAI API rate limits.

  clearindex [<paths> ...]
    Clear paths from the index, both from the in-memory index (if in Console Mode) and to delete .butterfish_index
    files. Defaults to loading from the current directory but allows you to pass in paths to load.

  loadindex [<paths> ...]
    Load paths into the index. This is specifically for Console Mode when you want to load a set of cached indexes
    into memory. Defaults to loading from the current directory but allows you to pass in paths to load.

  showindex [<paths> ...]
    Show which files are present in the loaded index. You can pass in a path but it defaults to the current
    directory.

  indexsearch <query>
    Search embedding index and return relevant file snippets. This uses the embedding API to embed the search string,
    then does a brute-force cosine similarity against every indexed chunk of text, returning those chunks and their
    scores.

  indexquestion <question>
    Ask a question using the embeddings index. This fetches text snippets from the index and passes them to the LLM
    to generate an answer, thus you need to run the index command first.

Run "butterfish <command> --help" for more information on a command.

butterfish: error: unknown flag -p, did you mean one of "-h", "-v"?
➜  code bfp "what's going on"
Usage: butterfish <command>

Do useful things with LLMs from the command line, with a bent towards software engineering.

Butterfish is a command line tool for working with LLMs. It has two modes: CLI command mode, used to prompt LLMs,
summarize files, and manage embeddings, and Shell mode: Wraps your local shell to provide easy prompting and
autocomplete.

Butterfish stores an OpenAI auth token at ~/.config/butterfish/butterfish.env and the prompt wrappers it uses at
~/.config/butterfish/prompts.yaml.

To print the full prompts and responses from the OpenAI API, use the --verbose flag. Support can be found at
https://github.com/bakks/butterfish.

If you don't have OpenAI free credits then you'll need a subscription and you'll need to pay for OpenAI API use. If
you're using Shell Mode, autosuggest will probably be the most expensive part. You can reduce spend here by disabling
shell autosuggest (-A) or increasing the autosuggest timeout (e.g. -t 2000). See "butterfish shell --help".

v0.0.31 darwin arm64 (commit 8cc7f94) (built 2023-04-21T02:11:22Z) MIT License - Copyright (c) 2023 Peter Bakkum

Flags:
  -h, --help       Show context-sensitive help.
  -v, --verbose    Verbose mode, prints full LLM prompts.

Commands:
  shell
    Start the Butterfish shell wrapper. This wraps your existing shell, giving you access to LLM prompting by
    starting your command with a capital letter. LLM calls include prior shell context. This is great for keeping a
    chat-like terminal open, sending written prompts, debugging commands, and iterating on past actions.

    Use:

      - Type a normal command, like 'ls -l' and press enter to execute it

      - Start a command with a capital letter to send it to GPT, like 'How do I find local .py files?'

      - Autosuggest will print command completions, press tab to fill them in

      - Type 'Status' to show the current Butterfish configuration

      - GPT will be able to see your shell history, so you can ask contextual questions like 'why didn't my last
        command work?'

        Here are special Butterfish commands:

      - Status : Show the current Butterfish configuration

      - Help : Give hints about usage

    If you don't have OpenAI free credits then you'll need a subscription and you'll need to pay for OpenAI API use.
    If you're using Shell Mode, autosuggest will probably be the most expensive part. You can reduce spend here by
    disabling shell autosuggest (-A) or increasing the autosuggest timeout (e.g. -t 2000).

  prompt [<prompt> ...]
    Run an LLM prompt without wrapping, stream results back. This is a straight-through call to the LLM from the
    command line with a given prompt. This accepts piped input, if there is both piped input and a prompt then they
    will be concatenated together (prompt first). It is recommended that you wrap the prompt with quotes. The default
    GPT model is gpt-3.5-turbo.

  summarize [<files> ...]
    Semantically summarize a list of files (or piped input). We read in the file, if it is short then we hand it
    directly to the LLM and ask for a summary. If it is longer then we break it into chunks and ask for a list of
    facts from each chunk (max 8 chunks), then concatenate facts and ask GPT for an overall summary.

  gencmd <prompt> ...
    Generate a shell command from a prompt, i.e. pass in what you want, a shell command will be generated. Accepts
    piped input. You can use the -f command to execute it sight-unseen.

  rewrite <prompt>
    Rewrite a file using a prompt, must specify either a file path or provide piped input, and can output to stdout,
    output to a given file, or edit the input file in-place. This command uses the OpenAI edit API rather than the
    completion API.

  exec [<command> ...]
    Execute a command and try to debug problems. The command can either passed in or in the command register (if you
    have run gencmd in Console Mode).

  index [<paths> ...]
    Recursively index the current directory using embeddings. This will read each file, split it into chunks,
    embed the chunks, and write a .butterfish_index file to each directory caching the embeddings. If you re-run this
    it will skip over previously embedded files unless you force a re-index. This implements an exponential backoff
    if you hit OpenAI API rate limits.

  clearindex [<paths> ...]
    Clear paths from the index, both from the in-memory index (if in Console Mode) and to delete .butterfish_index
    files. Defaults to loading from the current directory but allows you to pass in paths to load.

  loadindex [<paths> ...]
    Load paths into the index. This is specifically for Console Mode when you want to load a set of cached indexes
    into memory. Defaults to loading from the current directory but allows you to pass in paths to load.

  showindex [<paths> ...]
    Show which files are present in the loaded index. You can pass in a path but it defaults to the current
    directory.

  indexsearch <query>
    Search embedding index and return relevant file snippets. This uses the embedding API to embed the search string,
    then does a brute-force cosine similarity against every indexed chunk of text, returning those chunks and their
    scores.

  indexquestion <question>
    Ask a question using the embeddings index. This fetches text snippets from the index and passes them to the LLM
    to generate an answer, thus you need to run the index command first.

Run "butterfish <command> --help" for more information on a command.

butterfish: error: unknown flag -p, did you mean one of "-h", "-v"?

Ahh! So when you run shell mode it edits the PS1 variable, which is what sets the command prompt. If you do source .zshrc then that resets the prompt. So basically you would have to exit and restart butterfish shell after sourcing the shell profile. After a bunch of trying I haven't been able to find a better way to add the emoji. The reason I can't only add it at the Butterfish layer is that zsh itself does calculation based on the width of the prompt.
A potential workaround is that you could turn off the prompt editing in butterfish shell, and then set it yourself when you start it, but the idea is for it to work automatically without you having to change your own config.
Super open to ideas here