command line: instaloader new version update

Provide us a use case of the feature
How could the user invoke the new function?

instaloader.exe -U or instaloader.exe --update

Which problem would it solve?

this function is to solve the instaloader update via command line easily instead of downloading the new version from the GitHub every time.

If new information is obtained, how would it be further processed?

for example, this function is available in the yt-dlp {Self-updater: The releases can be updated using yt-dlp -U}, which I use every time to update and easy for the user.

If the feature request is accepted, would you be willing to submit a pull request?
No, I can't do programming.
possibly add help wanted label if this feature request pr needs to be done by someone other than you.

@aandergr @Thammus @Hassibayub I want to ask if this is possible and what do you think about this?

You are good at thinking out of the box. I'll check on this in my free time today 👍👍

I'll possibly complete this request tomorrow. @bachig26

I'll possibly complete this request tomorrow. @bachig26

Thank you. Looking forward to try it once got the release.

Feature added and pull request created. It's the basic implementation that just works. I will add wait animation and stylize terminal output in future, meanwhile I am occupied with my piles of projects.
Thank you @bachig26 for suggesting this update.

Running pip3 install --upgrade instaloader is in no way more complicated than something like instaloader --upgrade would be. Hence, I do not see a benefit in this feature suggestion.


feat: [IDP-2818]: Added the script to register catalog back in IDP

Description

Please describe your changes: Added the script to register catalog back in IDP

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[x] Successful preview build.
[ ] Code owner review.
[x] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66417664f1eb574c5664640f--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66419a9dbad0a35f70052bba--harness-developer.netlify.app


Default sort on table not working

Overview of the problem
Oruga version: 0.3.5
Vuejs version: 2.6.12
OS/Browser: Windows 10 64 bits / Chrome 87.0.4280.141 64 bits
Description

When one sets a default sort on a table, whether as a string (default-sort="user.first_name") or an array (:default-sort="['user.first_name', 'asc']"), this sort is not applied.
Steps to reproduce

You can see the bug in the official documentation for the table component, in the pagination example (https://oruga.io/components/table.html#pagination) where a default sort is set on the user.first_name column:
<o-table
      :data="data"
      :paginated="isPaginated"
      :per-page="perPage"
      :current-page.sync="currentPage"
      :pagination-simple="isPaginationSimple"
      :pagination-position="paginationPosition"
      :default-sort-direction="defaultSortDirection"
      :sort-icon="sortIcon"
      :sort-icon-size="sortIconSize"
      default-sort="user.first_name"
      aria-next-label="Next page"
      aria-previous-label="Previous page"
      aria-page-label="Page"
      aria-current-label="Current page"
    >

Expected behavior

Rows should be sorted by user first name.
Actual behavior

Rows aren't sorted by user first name, as you can see on the screenshot below:

In the table component source code, I've noticed that the checkSort method is never called.
Moreover, the firstTimeSort data is set to false:
data() {
    return {
        // ...

        // firstTimeSort: true, // Used by first time initSort
        firstTimeSort: false,

        // ...
    }
}

Workaround
In the mounted hook of the component where I put a table, I've added this:
<template>
  <o-table :data="data" :default-sort="['default-sort-column', 'asc']" />
</template>

<script>
export default: {
  // ...

  mounted() {
    this.$children.filter((c) => /otable/gi.test(c._name))[0].initSort()
  },

  // ...
}
</script>

@papyreno oruga-next (Vue 3,) or oruga (Vue 2) ?

@papyreno oruga-next (Vue 3) or oruga (Vue 2) ?

@jtommy oruga (Vue 2)

in my case it still working, but the arrow doesn't show up in header at first time.
in buefy example, the arrow is shown https://buefy.org/documentation/table/#async-data

@papyreno @bagaskarala my PR should fix your issues with default sorting


[Nico Nico Douga] "Unable to find video URL" error when downloading videos above 100MB

[x] I've verified and I assure that I'm running youtube-dl 2<IP_ADDRESS>
[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

edit: error still present in 2016.09.19 update (another crashing example: http://www.nicovideo.jp/watch/sm29698977)
You might be aware that Nico Nico Douga raised its upload limit to 1.5GB instead of what formerly was 100MB after August 18th 2016. Some users already began uploading content above 100MB, and this apparently causes some trouble to our well known "video downloaders".
Now when trying to attempt to download such content with youtube-dl, I'm rewarded by a strange and irrelevant "Unable to find video URL" when it actually tries to retrieve data and gather video info. And yes, I'm using the latest version to date and am actually using my login credentials to download the video. For the moment, only VideoDownloadHelper (Firefox add-on) manages to download this particular video (featured in the log) but it unfortunately fails before the end.

Here's one of the incriminating videos: http://www.nicovideo.jp/watch/sm29513760
Here's my log (user and password replaced by ***):

F:\>youtube-dl -v -u *** -p *** http://www.nicovideo.jp/watch/sm29513760
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', '-u', 'PRIVATE', '-p', 'PRIVATE', 'http://www.nicovideo.jp/watch/sm29513760']
[debug] Encodings: locale cp1252, fs mbcs, out cp1252, pref cp1252
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 3.4.4 - Windows-XP-5.1.2600-SP3
[debug] exe versions: ffmpeg 2.8.4, ffprobe N-67999-gd0879a9
[debug] Proxy map: {}
ERROR: Unable to find video URL; please report this issue on https://yt-dl.org/
ug . Make sure you are using the latest version; type  youtube-dl -U  to update
 Be sure to call youtube-dl with the --verbose flag and include its complete ou
put.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvarrvgfb\bild\youtube_dl\YoutubeDL.py", line 691, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvarrvgfb\bild\youtube_dl\extractor\common.py", line 347, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvarrvgfb\bild\youtube_dl\extractor\niconico.py", line 161, in _real_extract
youtube_dl.utils.ExtractorError: Unable to find video URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Another log (from a different environment, Ubuntu 16.04):

$ youtube-dl -v -u *** -p *** http://www.nicovideo.jp/watch/sm29513760
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'-u', u'PRIVATE', u'-p', u'PRIVATE', u'http://www.nicovideo.jp/watch/sm29513760']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.7.12 - Linux-4.4.0-34-generic-x86_64-with-Ubuntu-16.04-xenial
[debug] exe versions: avconv 2.8.6-1ubuntu2, avprobe 2.8.6-1ubuntu2, ffmpeg 2.8.6-1ubuntu2, ffprobe 2.8.6-1ubuntu2, rtmpdump 2.4
[debug] Proxy map: {}
[niconico] Logging in
[niconico] sm29513760: Downloading webpage
[niconico] sm29513760: Downloading video info page
[niconico] sm29513760: Downloading flv info
ERROR: Unable to find video URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 691, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 347, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/niconico.py", line 161, in _real_extract
    raise ExtractorError('Unable to find video URL')
ExtractorError: Unable to find video URL; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Does using a NND account allow for larger resolution rips?

Since August 18th, it does, but when the source file is above 100MB. I've just checked without using my credentials. It successfully downloads, but it's a lower quality version.
For this particular video: it's turned into 78MB in size, downscaled to 960x540 and re-encoded to average bitrate. In fact, this is the file that nicofox downloads, too, but on the other hand this add-on requires logging in for download.
Whereas the original file is 155MB in size, 1920x720 in resolution and a higher peak for the bitrate (can't tell if i's VBR or ABR). I was able to download it after multiples retries with VideoDownloadHelper (it would always fail before reaching the end).

@Dioxaz I ask because I archive NicoNico videos, and that's not many I'd have to re-rip. 10 days I did a handful of them.
Thanks

I suppose this is the reason why I can't download this (content warning: Japan) but I can download this (content warning: Italy).
Considered that my main reason for turning to youtube-dl for nicovideo urls is circumventing their registration screen, this is a little disappointing, but I suppose it cannot be helped :/

@badp That's interesting. Even though it yields the same error message when connected, that video you first linked won't download when not connected either ("Unable to extract thumbPlayKey" error). It seems that both your video and mine return different responses than standard uploads. However, your video was uploaded in March 2016 and has nothing particular (it downloads with nicofox) so that's weird.

Just checked http://www.nicovideo.jp/watch/sm28462799 and http://www.nicovideo.jp/watch/sm29698977; both says:

Currently playing in low quality (economy) mode due to heavy user traffic.

Seems a premium account is necessary to download the original version? Or anyone know whether there's a "non-heavy" time span?

You should be able to download these videos normally outside peak hours (the time slot that Nico Nico Douga allocates as peak hours). Otherwise an economy version is served instead. And these particular two videos don't have a high-resolution variant, only the regular 100MB one.


Intellisense not working for azure cli

Extension name
Azure cli extension version 0.5.0
azure cli version 2.6.0
Description of issue
In VS code, Intellisense is not working and I have no code completion.  I also have powershell on this machine and intellisense works with no problems.  I can run code via the terminal but I just don't get code completion.
Environment summary
windows 10 Version 10.0.18363.8361909
VS Code Version: 1.45.1 (user setup) with Azure CLI extension v 0.5.0
azure cli version 2.6.0
power shell 7

@arrownj please take a look

Thank you @yonzhan @XiaoningLiu

Hi @kazimsomji , please kindly be noted that CLI do not support code completion on Windows. You can try code completion on Linux.

Hi @kazimsomji , please kindly be noted that CLI do not support code completion on Windows. You can try code completion on Linux.

Hi,
I have another Windows 10 machine and code completion works on that one.

hi @kazimsomji did you met code completion issue in VSCode? If yes, it's azure cli VSCode extension issue. This repo is azure cli extension of different commands. Could you pls track the issue in VSCode Azure CLI extension repo? thanks. cc @arrownj

hi @kazimsomji could you pls help to clarify is this issue about autocomplete in VSCode?

Yes this is autocomplete in VS Code.

Yes this is autocomplete in VS Code.

thanks for confirmation. will close the issue now. Feel free to create new issue if any error when using azure cli.


Emotion css for styling.

In case of usingreact-virtualized with Material-UI framework wouldn't it be quite convenient to have a css property support for Table, List, Column etc. components styling.

Assign me this issue


Update License information in package.json

We use Apache License 2.

resolved by https://github.com/lecle/aloxide/pull/39, @flowersinthesand please help closing this.

@hoang-dao confirmed it's resolved by https://github.com/lecle/aloxide/commit/120e0edad9077ece50aedbe18789392aefb3e6ef 😄


env init workflow can't write env SSM entry if user cancels during active deployment

If a user runs env init to kick off an active deployment then subsequent env init invocations return ✔ Success! Environment test already exists under project myproj! Do nothing. even if the CloudFormation Stack Status is CREATE_IN_PROGRESS.
It might be more clear to the user if we can return a message that informs them when a deployment is already underway for the given inputs, or potentially resumes the progress outputs.

There also appears to be an unintended side affect of not being able to store an environment into SSM if an environment CloudFormation stack was created, but the user cancelled (Ctrl-ced) out before a deployment fully completes and a CreateEnvironment call happens.
Example workflow to reproduce:
$ ./bin/local/archer env init test
...progress of environment being created...
$ ^C
$ ./bin/local/archer env init test
$ ✔ Success! Environment test already exists under project myproj! Do nothing.

Meanwhile in SSM there is no test environment entry.
We may need to make the CreateEnvironment call in the case where we handle cloudformation.ErrStackAlreadyExists error or do an existence check in SSM before making the CreateEnvironment call.

Yea essentially right now we're only checking to see if a stack exists, regardless of its status. We only want to skip creating it if its in some successful state.

So maybe we need to add in a DescribeStack call if the stack does already exist and write the environment to SSM if the status is "success" and that environment doesn't already exist in SSM?
Or switch that order of operations:

DescribeStack to see if the stack exists

If it doesn't exist then CreateStack and write to SSM
If it does exist ensure it succeeded and validate/write to SSM


feat: add igbinary 3.2.13 release

update igbinary with release 3.2.13

:tada: This PR is included in version 1.63.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Predicates / Gates using closures to parameters will cause unexpected behaivor.

The problem is that the lookahead function created will be cached and maintain a reference to the predicates and those same predicates functions will maintain a reference to the original parameter.
instead of using the new parameter in each invocation.
In the following example the predicate (the value functions of the WHEN properties)
Will be cached and reused every single time that OR is reached.
which means that only the original "mood" value will ever be used in the predicates.
this.hello = this.RULE("hello", (mood) => {
            this.CONSUME(Hello)

            // The mood parameter is used to determine which path to take
            this.OR([
                {WHEN: () => mood === "positive", THEN_DO: () => this.SUBRULE(this.positive)},
                {WHEN: () => mood === "negative", THEN_DO: () => this.SUBRULE(this.negative)}
            ])

            this.CONSUME(World)
        })

The solution would be to change how the Lookahead function is constructed.
The predicates should be an argument to the lookahead function. They cannot be cached.


Update workflows

Linted our workflow using https://rhysd.github.io/actionlint/ and found a line needing a fix, and thought I'd upgrade the lockfile and pre-commit config while I was here :slightly_smiling_face:

You're awesome!


supervisor example in Cluster documentation fix #196

Current coverage is 90.83% (diff: 100%)

Merging #197 into master will decrease coverage by 5.79%

@@             master       #197   diff @@
==========================================
  Files            40         40
  Lines          2727       2727
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           2635       2477   -158
- Misses           92        250   +158
  Partials          0          0

Powered by Codecov. Last update 60b95a6...dfa0920


New version: LsqFit v0.9.0

Registering package: LsqFit
Repository: https://github.com/JuliaNLSolvers/LsqFit.jl
Created by: @pkofod
Version: v0.9.0
Commit: 08d648f3d3e6f1eb9b6342f646e2012cdd1dcbd6
Reviewed by: @pkofod
Reference: https://github.com/JuliaNLSolvers/LsqFit.jl/commit/08d648f3d3e6f1eb9b6342f646e2012cdd1dcbd6#commitcomment-36546573

Next time, please add the compat entries. I recommend using CompatHelper.jl

Next time, please add the compat entries. I recommend using CompatHelper.jl

I set up CompatHelper, and will review its prs, thanks


Add TryFrom<&[u8]> bound to Encoding::Repr

This helps with deserialization - one doesn't need to create a mutable buffer and use a special purpose deserialize mutating its argument (like serdect does currently), but instead one can just use a standard deserialize with the API compatible with that of #[serde(with)] that returns the Repr object.

Also note: this is a breaking change, so we can't merge it until the next breaking release.

Bumped version to v0.6.0-pre in #295. Merging


Format logging datetime as ISO 8601 UTC

Fixes #72

Here's an example of what the datetime now looks like:
2024-05-09T19:46:09,080Z [MainProcess:gedi_subset] [INFO] Subset 6 granule(s) to /projects/output/GAB-ADM0_subset.gpkg

pre-commit.ci run


TOOLS pg fixed typo and removed duplicate entries

Fixed typo in tools description - There--> their
Formatted the tables a bit better
removed duplicate entries and added a new column for OS/platforms
-swapped menu bar from blue to the newer white one (I couldn't test the button though)
removed duplicate footer code; left one that looks nicer.
commented out extra scripts- feel free to delete those lines.

the "some tweaking" commit is the most up to date one (after I learned how to set up an Apache server... used to React & Ruby).

Great work thanks :)


Error occurred when executing APersonMaskGenerato

Error occurred when executing APersonMaskGenerator:
File "D:\ComfyUI_windows\ComfyUI\execution.py", line 149, in recursive_execute
obj = class_def()
^^^^^^^^^^^
File "D:\ComfyUI_windows\ComfyUI\custom_nodes\a-person-mask-generator\a_person_mask_generator_comfyui.py", line 39, in init
get_a_person_mask_generator_model_path()
File "D:\ComfyUI_windows\ComfyUI\custom_nodes\a-person-mask-generator\a_person_mask_generator_comfyui.py", line 30, in get_a_person_mask_generator_model_path
wget.download(model_url, model_file_path)
File "D:\ComfyUI_windows\python_embeded\Lib\site-packages\wget.py", line 526, in download
(tmpfile, headers) = ulib.urlretrieve(binurl, tmpfile, callback)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "urllib\request.py", line 241, in urlretrieve
File "urllib\request.py", line 216, in urlopen
File "urllib\request.py", line 519, in open
File "urllib\request.py", line 536, in _open
File "urllib\request.py", line 496, in _call_chain
File "urllib\request.py", line 1391, in https_open
File "urllib\request.py", line 1351, in do_open

Download the model from here https://developers.google.com/mediapipe/solutions/vision/image_segmenter#multiclass-model and place it here ComfyUI\models\mediapipe\selfie_multiclass_256x256.tflite

Fixed here: https://github.com/djbielejeski/a-person-mask-generator/pull/33


Error writing adata to file

Hello,
I've been trying to run conga analyses using the command line and the -all flag. When I run it, I seem to be getting results up until line 1070 of run_conga.py where the anndata object is being saved. The error I get is:
error writing adata to file, dropping the conga_results dict
Traceback (most recent call last):
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/utils.py", line 214, in func_wrapper
    return func(elem, key, val, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 175, in write_elem
    _REGISTRY.get_writer(dest_type, t, modifiers)(f, k, elem, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 64, in get_writer
    raise TypeError(
TypeError: No method has been defined for writing <class 'collections.OrderedDict'> elements to <class 'h5py._hl.group.Group'>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/my_software/conga/scripts/run_conga.py", line 1070, in <module>
    adata.write_h5ad(args.outfile_prefix+'_final.h5ad')
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_core/anndata.py", line 1918, in write_h5ad
    _write_h5ad(
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/h5ad.py", line 105, in write_h5ad
    write_elem(f, "uns", dict(adata.uns), dataset_kwargs=dataset_kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/utils.py", line 214, in func_wrapper
    return func(elem, key, val, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 175, in write_elem
    _REGISTRY.get_writer(dest_type, t, modifiers)(f, k, elem, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 24, in wrapper
    result = func(g, k, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/methods.py", line 281, in write_mapping
    write_elem(g, sub_k, sub_v, dataset_kwargs=dataset_kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/utils.py", line 220, in func_wrapper
    raise type(e)(
TypeError: No method has been defined for writing <class 'collections.OrderedDict'> elements to <class 'h5py._hl.group.Group'>

Above error raised while writing key 'conga_stats' of <class 'h5py._hl.group.Group'> to /

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/utils.py", line 214, in func_wrapper
    return func(elem, key, val, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 175, in write_elem
    _REGISTRY.get_writer(dest_type, t, modifiers)(f, k, elem, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 64, in get_writer
    raise TypeError(
TypeError: No method has been defined for writing <class 'collections.OrderedDict'> elements to <class 'h5py._hl.group.Group'>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/my_software/conga/scripts/run_conga.py", line 1075, in <module>
    adata.write_h5ad(args.outfile_prefix+'_final.h5ad')
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_core/anndata.py", line 1918, in write_h5ad
    _write_h5ad(
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/h5ad.py", line 105, in write_h5ad
    write_elem(f, "uns", dict(adata.uns), dataset_kwargs=dataset_kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/utils.py", line 214, in func_wrapper
    return func(elem, key, val, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 175, in write_elem
    _REGISTRY.get_writer(dest_type, t, modifiers)(f, k, elem, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/registry.py", line 24, in wrapper
    result = func(g, k, *args, **kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/specs/methods.py", line 281, in write_mapping
    write_elem(g, sub_k, sub_v, dataset_kwargs=dataset_kwargs)
  File "/home/user/miniconda3/envs/conga/lib/python3.9/site-packages/anndata/_io/utils.py", line 220, in func_wrapper
    raise type(e)(
TypeError: No method has been defined for writing <class 'collections.OrderedDict'> elements to <class 'h5py._hl.group.Group'>

Above error raised while writing key 'conga_stats' of <class 'h5py._hl.group.Group'> to /

I'm not super familiar with python and I am really struggling to work out what the issue is. Any thoughts?
Thank you!

Hi there,
Thanks for giving conga a try! It looks like the scanpy AnnData saving machinery is choking on something in the conga_results dictionary, which is stored in adata.uns. Huh!
Q1. Do you get the *_final_obs.tsv file? And/or the *_results_summary.html file? Since that adata.write_h5ad function call is wrapped in a "try" block, the error message doesn't necessarily mean that the code stopped at that point.
Q2. Can you tell us a bit more about how you got to this point? Command line arguments? Input file formats? This is 10x data, I guess? Is this from the conga examples or your own data? Any nonstandard preprocessing (or batch labels) that might be relevant?
Thanks for the info!
Take care,
Phil

Q1 - No, it doesn't look like I'm getting the final_obs.tsv file or the results_summary.html file
Q2 - This is (my own) 10x data that I analyzed with Seurat and used the DropletUtils package to write to 10x_mtx format. No batch labels used at this point, and I don't think anything nonstandard was done for preprocessing. This is the command I used:
/home/user/my_software/conga/scripts/run_conga.py --gex_data ../data_gex.h5ad --gex_data_type h5ad --clones_file ../data_clones.tsv --organism human --all --outfile_prefix data_conga.
Please let me know if there is any more information that would be helpful!

OK, thanks for that info! This is really curious. For some reason the AnnData code doesn't seem to be able to save an OrderedDict (or one of its elements) to h5ad. It looks like you are using python version 3.9, is that right? I don't think we've tested in a python 3.9 env yet... I will see if I can replicate this error.
In the meantime, would you be willing to try making a change to your conga code? On this line:
https://github.com/phbradley/conga/blob/master/conga/util.py#L161
could you try changing
    adata.uns['conga_stats'] = OrderedDict()

to
    adata.uns['conga_stats'] = {}

ie, just replacing the OrderedDict with a plain old python dictionary (preserving the indentation in the code).

That seems to have fixed it. Thank you very much for your help!


pipshims was updated and pipenv didn't work?

File "/usr/lib/python2.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 704, in from_line
line, extras = _strip_extras(line)
TypeError: 'module' object is not callable
pipenv, version 2018.7.1

This is a known bug which is fixed by https://github.com/pypa/pipenv/pull/2935
For the workaround, pip install pip==18.0 or install the latest pipenv version from the master branch

thanks


View window closes after keying in commands

@MagnificentCreature which command did you enter? The list command is supposed to hide the client details.

The interaction command will close an opened profile/view


retry bulk rm

Fixes #558

I did some cleanup here, if people wouldn't mind trying again.

Thanks @martindurant ! I'll try reproducing tomorrow

On the latest commit I'm getting failures like this now:
  File "/opt/miniconda3/envs/salient/lib/python3.11/site-packages/zarr/storage.py", line 1531, in rmdir
    self.fs.rm(store_path, recursive=True)
  File "/opt/miniconda3/envs/salient/lib/python3.11/site-packages/fsspec/asyn.py", line 118, in wrapper
    return sync(self.loop, func, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/miniconda3/envs/salient/lib/python3.11/site-packages/fsspec/asyn.py", line 103, in sync
    raise return_result
  File "/opt/miniconda3/envs/salient/lib/python3.11/site-packages/fsspec/asyn.py", line 56, in _runner
    result[0] = await coro
                ^^^^^^^^^^
  File "/opt/miniconda3/envs/salient/lib/python3.11/site-packages/gcsfs/core.py", line 1286, in _rm
    raise errors[0]
OSError: {    "code": 503,    "message": "Server is not responding",    "errors": [      {        "message": "Server is not responding",        "domain": "global",        "reason": "backendError"      }    ]  }

When I use the previous commit, today I am also getting 503 instead of 429 but the failed files are correctly filtered out and retried.

I made a small change to batch the leftovers, if any, instead of repeating for each batch.
I don't see how 503 is escaping, unless you are running out of retries (could add logging here):
                    if code in [200, 204]:
                        out.append(path)
                    elif code in errs and i < 5:
                        remaining.append(path)
                    else:
                        ...

should mean 503 either gets the path back in remaining and is retried, so long as retries are left. Maybe the server really was flaky? errs contains [500, 501, 502, 503, 504, 408, 429].

Of course I can't trip any errors now that I try again (regardless of commit). I'll try again tomorrow.
When I hit the 503 earlier, I did have a print statement that should have logged if anything went into remaining but I never saw that, suggesting it was not getting flagged as retriable somehow.

On batch size, Google says this:

You should not include more than 100 calls in a single batch request. If you need to make more calls than that, use multiple batch requests. The total batch request payload must be less than 10MB.

I was thinking that with the requests concurrent, smaller batches would be better. Maybe that's wrong, since sending the requests should take about the same bandwidth regardless.
We have two batch sizes here: in the outer _rm and the inner _rm_files. Should they be the same?

I'm not sure but that seems ok. Then the outer _rm ends up handling all the batching and each call to _rm_files only runs a single chunk. So the code could actually be simplified to drop a loop from _rm_files right?
Also should a user be able to configure batchsize from the public API? AbstractFileSystem.rm() doesn't pass through additional **kwargs.

Actually, it's this one: https://github.com/fsspec/filesystem_spec/blob/master/fsspec/asyn.py#L316
And you are right, if _rm_files is not designed to be called from outside, there's no reason it should do its own internal looping.

Thanks!


General discussion around language used on hub and napari.dev

I'm very excited about the upcoming hub release and want to thank you for your efforts!
I'd would, though, like to open a discussion and share some thoughts/concerns on some of the "sales-pitchy/marketing" language that I see used on services like the hub and napari.dev.  First: I think these are both awesome services: I'm super appreciative and I can't wait to see them get off the ground.  I do, however, sometimes find myself feeling uncomfortable as I read them.  Some of the wording comes off sounding like an advertisement, and feels a bit out of place in a scientific environment.  I  do recognize that there is generally language somewhere else on the page that clarifies that "some of this is aspirational", as opposed to "this is already concretely available".  But that approach can feel like a bit of a trick... as though it's left as an exercise to the perceptive reader to realize that you can't really do these things yet.  (I'd kind of prefer that we underpromise/overdeliver... rather than be seen as a community that likes to wrap things in an overly sunny package)
Some examples from the hub

"plugin users can ... be confident they've found the right plugin for their data and "it just works"

that feels extremely hard to do ...  and i'm not immediately sure how we can promise that?  if it's anything like most scientific communities, i suspect it will be more like a typical "try some of the more popular plugins until you hit on something that eventually works for you".  no?

"plugin builders can capture reliable actionable feedback...

I mean, I hope that's the case.  but since the feedback is coming from the community, how can we promise that the feedback is either reliable or actionable?

"Install into napari with confidence"

feels like marketing talk for "we'll remind you how install plugins" ... but whether they install correctly is out of our hands...

and from napari.dev ...

big bold type at the top: "Share your analysis tool with researchers everywhere — No GUI development required."... "napari is designed with researchers’ needs in mind and takes the GUI work off your hands."

there too, that's an aspiration that we have, but have definitely not achieved... but that's not really clear anywhere on that page at all.  it also makes it sound like napari was designed by some organization that may or may not actually be researchers, but with them as a target market... which is definitely not the case.    This one particularly feels like it needs to be wrapped in a "we hope to someday" sort of preamble

"Commit your changes. We’ll handle the testing."

again... that would be amazing... but as we all know... that's proven to be quite challenging, and it reads like we've already achieved it.

Anyway, just want to re-emphasize that I recognize these things are meant to be aspirational, and not necessarily taken literally... but as a core developer on the program being referenced they make me feel a little uncomfortable.  While it probably does work to build excitement, it doesn't quite feel "authentic".  I find myself wondering why it needs to be stated as such.
Hope you don't mind me saying so, and thanks again for the awesome, exciting resource.

Thanks for reaching out with your concerns, Talley.
The napari hub examples you cite from our temporary landing page are explicitly aspirational and we tried to make this clear. This is absolutely what we hope to deliver through our work on the napari hub and through our partnership with napari.

Now that we’ve launched the full napari hub, we’ll be moving some of this language to a description of our roadmap on Github. Happy to revise some of the language to make it 100% clear that this is our vision and to separate it from the concrete features and value we plan to deliver in the near term.
As for the napari.dev language, you’re right: when we launched napari.dev last year, there were only i/o plugins for napari. We’ve learned a lot since then and decided to prioritize work on the napari hub over developer services and its clear that the language here needs revision to accurately reflect our plans and the state of napari.


Tests: adjust the SerializedJSONTests on Windows

The extra Windows specific test cases did not account for the path normalization that occurs as part of the AbsolutePath construction. Alter the expectations to match that.  Additionally, on Windows, the /test\\backslash path would be normalized to \test\backslash.

@swift-ci please smoke test

@swift-ci please smoke test Linux platform

@swift-ci please smoke test Linux platform


VMI: Validate ipv6 static loopback & multicast add

Defect: https://jazz07.rchland.ibm.com:13443/jazz/web/projects/CSSD#action=com.ibm.team.workitem.viewWorkItem&id=546486
Tested By:
Loopback Address
curl -k -H "X-Auth-Token:$bmc_token" -X PATCH -D patch.txt
-d '{"IPv6StaticAddresses": [{"Address":"::1","PrefixLength":128}]}'
https://${bmc}/redfish/v1/Systems/hypervisor/EthernetInterfaces/eth1
<EMAIL_ADDRESS>[
{
<EMAIL_ADDRESS>"#Message.v1_1_1.Message",
"Message": "The value '::1' for the property Address is of a
different format than the property can accept.",
"MessageArgs": [
"::1",
"Address"
],
"MessageId": "Base.1.13.0.PropertyValueFormatError",
"MessageSeverity": "Warning",
"Resolution": "Correct the value for the property in the
request body and resubmit the request if the operation failed."
}
]
}
Multicast Address
curl -k -H "X-Auth-Token:$bmc_token" -X PATCH -D patch.txt
-d '{"IPv6StaticAddresses": [{"Address":"FF00::","PrefixLength":8}]}'
https://${bmc}/redfish/v1/Systems/hypervisor/EthernetInterfaces/eth1
{
<EMAIL_ADDRESS>[
{
<EMAIL_ADDRESS>"#Message.v1_1_1.Message",
"Message": "The value 'FF00::' for the property Address is of a
different format than the property can accept.",
"MessageArgs": [
"::1",
"Address"
],
"MessageId": "Base.1.13.0.PropertyValueFormatError",
"MessageSeverity": "Warning",
"Resolution": "Correct the value for the property in the
request body and resubmit the request if the operation failed."
}
]
}

Please run Jenkins job.


📝 Update docs for models for updating, id should not be updatable

Great, thanks! I updated the docs and tests as needed. Thanks! :cake:


Cannot access gated repo for url https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2

getting following error when running 'PGPT_PROFILES=ollama make run ' after fresh install (no cache).
OSError: You are trying to access a gated repo.
Make sure to have access to it at https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2.
401 Client Error. (Request ID: Root=1-6621fd8f-45a5ffb02852831b1f476fbc;d622d97e-b698-4e30-89c4-e31278dd17ca)
Cannot access gated repo for url https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2/resolve/main/config.json.
Repo model mistralai/Mistral-7B-Instruct-v0.2 is gated. You must be authenticated to access it.
make: *** [run] Error 1

I am also seeing this issue

this is the full stacktrace:
Traceback (most recent call last):
  File "/home/worker/app/.venv/lib/python3.11/site-packages/injector/__init__.py", line 798, in get
    return self._context[key]
           ~~~~~~~~~~~~~^^^^^
KeyError: <class 'private_gpt.ui.ui.PrivateGptUi'>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/worker/app/.venv/lib/python3.11/site-packages/injector/__init__.py", line 798, in get
    return self._context[key]
           ~~~~~~~~~~~~~^^^^^
KeyError: <class 'private_gpt.server.ingest.ingest_service.IngestService'>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/worker/app/.venv/lib/python3.11/site-packages/injector/__init__.py", line 798, in get
    return self._context[key]
           ~~~~~~~~~~~~~^^^^^
KeyError: <class 'private_gpt.components.llm.llm_component.LLMComponent'>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/worker/app/.venv/lib/python3.11/site-packages/huggingface_hub/utils/_errors.py", line 270, in hf_raise_for_status
    response.raise_for_status()
  File "/home/worker/app/.venv/lib/python3.11/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2/resolve/main/config.json```

This is till a bug however. In my final settings (from two profiles, lets say), I dont use anything from Huggingface, but I still see this error.
Current workaround if you are using privategpt without using anything from huggingface is to comment out the llm and embedding sections in the default settings.yaml file, but fill them in your settings-<profile_name>.yaml override file.
# llm:
#   mode: llamacpp
#   # Should be matching the selected model
#   max_new_tokens: 512
#   context_window: 3900
#   tokenizer: mistralai/Mistral-7B-Instruct-v0.2
#   temperature: 0.1      # The temperature of the model. Increasing the temperature will make the model answer more creatively. A value of 0.1 would be more factual. (Default: 0.1)

# embedding:
#   # Should be matching the value above in most cases
#   mode: huggingface
#   ingest_mode: simple
#   embed_dim: 384 # 384 is for BAAI/bge-small-en-v1.5

You need to follow the steps given by HuggingFace first (here):

pip install huggingface_hub
huggingface-cli login
here you enter the Token that you create in the Huggingface website
After that you should be able to work as usual

Thanks this sorted me

This is still a bug however. In my final settings (from two profiles, lets say), I dont use anything from Huggingface, but I still see this error.
Current workaround if you are using privategpt without using anything from huggingface is to comment out the llm and embedding sections in the default settings.yaml file, but fill them in your settings-<profile_name>.yaml override file.
# llm:
#   mode: llamacpp
#   # Should be matching the selected model
#   max_new_tokens: 512
#   context_window: 3900
#   tokenizer: mistralai/Mistral-7B-Instruct-v0.2
#   temperature: 0.1      # The temperature of the model. Increasing the temperature will make the model answer more creatively. A value of 0.1 would be more factual. (Default: 0.1)

# embedding:
#   # Should be matching the value above in most cases
#   mode: huggingface
#   ingest_mode: simple
#   embed_dim: 384 # 384 is for BAAI/bge-small-en-v1.5

This solution worked.

This is still a bug however. In my final settings (from two profiles, lets say), I dont use anything from Huggingface, but I still see this error.
Current workaround if you are using privategpt without using anything from huggingface is to comment out the llm and embedding sections in the default settings.yaml file, but fill them in your settings-<profile_name>.yaml override file.
# llm:
#   mode: llamacpp
#   # Should be matching the selected model
#   max_new_tokens: 512
#   context_window: 3900
#   tokenizer: mistralai/Mistral-7B-Instruct-v0.2
#   temperature: 0.1      # The temperature of the model. Increasing the temperature will make the model answer more creatively. A value of 0.1 would be more factual. (Default: 0.1)

# embedding:
#   # Should be matching the value above in most cases
#   mode: huggingface
#   ingest_mode: simple
#   embed_dim: 384 # 384 is for BAAI/bge-small-en-v1.5

I'm still getting:
PermissionError: [Errno 13] Permission denied: 'tiktoken_cache'

How were you able to sort it out (using settings-ollama.yaml file without any changes)

You probably need to recursive chown the /home/worker/app directory to the worker user

You probably need to recursive chown the /home/worker/app directory to the worker user. I assume you ran into this running in docker?

Correct.
Indeed, after adding:
RUN chown -R worker:worker /home/worker/app

(and applying your solution of course)
to Dockerfile.local it's now working
Thanks a lot

Create an account on Huggingface.co and then create a Token in its settings -> Access Tokens.
Add token to your ENV as HUGGINGFACE_TOKEN or just hardcode in setup.py if testing.
Add token arg in following places in setup.py

hf_hub_download(
    repo_id=settings().llamacpp.llm_hf_repo_id,
    filename=settings().llamacpp.llm_hf_model_file,
    cache_dir=models_cache_path,
    local_dir=models_path,
    resume_download=resume_download,
    token=settings().huggingface.access_token, # add this
)

AutoTokenizer.from_pretrained(
    pretrained_model_name_or_path=settings().llm.tokenizer,
    cache_dir=models_cache_path,
    token=settings().huggingface.access_token, # add this
)

Navigate to Mistral-7B-Instruct-v0.2 on Huggingface.co and accept its privacy policy.
Run setup

This solved the same issue for me.

You need to follow the steps given by HuggingFace first (here):

pip install huggingface_hub
huggingface-cli login
here you enter the Token that you create in the Huggingface website
After that you should be able to work as usual

I get valid the token but then this appears
FileNotFoundError: [WinError 2] The system can't find the specified file

There's another bug in ollama_settings.yaml which can cause PGPT_PROFILES=ollama make run fails.
You should use embedding_api_base instead of api_base for embedding.
The source code of embedding_component.py did require embedding_api_base property.
ollama:
llm_model: mistral
embedding_model: nomic-embed-text
#api_base: http://localhost:11434
embedding_api_base: http://localhost:11434

Create an account on Huggingface.co and then create a Token in its settings -> Access Tokens.

Add token to your ENV as HUGGINGFACE_TOKEN or just hardcode in setup.py if testing.

Add token arg in following places in setup.py

hf_hub_download(
    repo_id=settings().llamacpp.llm_hf_repo_id,
    filename=settings().llamacpp.llm_hf_model_file,
    cache_dir=models_cache_path,
    local_dir=models_path,
    resume_download=resume_download,
    token=settings().huggingface.access_token, # add this
)

AutoTokenizer.from_pretrained(
    pretrained_model_name_or_path=settings().llm.tokenizer,
    cache_dir=models_cache_path,
    token=settings().huggingface.access_token, # add this
)

* Navigate to Mistral-7B-Instruct-v0.2 on Huggingface.co and accept its privacy policy.

* Run setup

This solved the same issue for me.

This solved for me too! thanks a lot

After

Create an account on Huggingface.co and then create a Token in its settings -> Access Tokens.
Add token to your ENV as HUGGINGFACE_TOKEN or just hardcode in setup.py if testing.
Add token arg in following places in setup.py

hf_hub_download(
    repo_id=settings().llamacpp.llm_hf_repo_id,
    filename=settings().llamacpp.llm_hf_model_file,
    cache_dir=models_cache_path,
    local_dir=models_path,
    resume_download=resume_download,
    token=settings().huggingface.access_token, # add this
)

AutoTokenizer.from_pretrained(
    pretrained_model_name_or_path=settings().llm.tokenizer,
    cache_dir=models_cache_path,
    token=settings().huggingface.access_token, # add this
)

Navigate to Mistral-7B-Instruct-v0.2 on Huggingface.co and accept its privacy policy.
Run setup

This solved the same issue for me.

That fixed it for me. Also if you are getting a We couldn't connect to 'https://huggingface.co' after than, change your token to Write, that should fix it.

Advanced Troubleshooting Steps

Check Network Issues:

Ensure no network restrictions block Hugging Face.
Use a VPN to bypass regional restrictions.

Environment Isolation:

Create a fresh virtual environment to rule out dependency conflicts:python -m venv newenv
source newenv/bin/activate  # or newenv\Scripts\activate on Windows
pip install huggingface_hub
huggingface-cli login

Token Scope Verification:

Ensure the token scope includes read and write permissions. Update token permissions on Hugging Face if needed.

Inspect Detailed Logs:

Enable detailed logging to capture more information about the error:import logging
logging.basicConfig(level=logging.DEBUG)

Use Direct API Calls:

Verify access by making direct API calls using requests:import requests

headers = {"Authorization": f"Bearer {your_token}"}
response = requests.get("https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2/resolve/main/config.json", headers=headers)
print(response.status_code, response.text)

If you need further tailored assistance, please provide specific details about the error logs or configurations you are using. This will help diagnose the issue more accurately.

Why is the tokenizer needed and why does it access an external site?

The tokenizer is a great question for you to ask Google or any Large Language Models. As for the internet calls, it is due to model licensing requiring permission to access certain paid or "premium" models. It makes it so you can't go and make money or train your own AI without giving them credit or such. If you are asking about the API method I just posted, that is a workaround to test to see if the issue is specific to the installed python libraries caching something or if it is due to an issue on huggingface's side.

I think in the case of ollama such a hugging face requirement should not exist. Btw this gated repo issue is happening to me on Ubuntu 22.04 and not on Windows.

I think in the case of ollama such a hugging face requirement should not exist. Btw this gated repo issue is happening to me on Ubuntu 22.04 and not on Windows.

Got the same on Debian12 but solved

You need to follow the steps given by HuggingFace first (here):

pip install huggingface_hub
huggingface-cli login
here you enter the Token that you create in the Huggingface website
After that you should be able to work as usual

After doing the above, I still have to browse to the URL: https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2
and then click on the button to grant me access to the model. Only then it worked for me.

This worked for me:

accepted its privacy policy
created a Access Token with the 'finegrained' permission under the account settings (Ticked all options under Repositories and Inference.)
ran pip install --upgrade huggingface_hub, and add this two lines into your code.

from huggingface_hub import login
login(token="the access token I just created")


Write generalizable analytics scripts for reporting over time

Thanks for creating an issue! Please fill out this form so we can be sure to have all the information we need, and to minimize back and forth.

What are we trying to do?

One of the things we're trying to do with this project is to make things available to funds that they otherwise wouldn't have, and one of those things is decent analytics. I'm attaching here a CSV of fake data.
You are welcome to do this in whatever language you would prefer! Python or R is great, or any other language you're comfortable in. Please include detailed instructions for how to install dependencies and run the script, ideally that someone could copy and paste.
Please make any pull requests against the repo in https://github.com/DCAFEngineering/dcaf_analytics rather than here though! There's a directory in https://github.com/DCAFEngineering/dcaf_analytics/tree/master/analytics/base_reporting where you can put any work completed toward this goal.

What feature or behavior is this required for?

Funds use this data to make informed judgments about their program. DCAF, for example, has used information like this to figure out what communities they could do a better job of serving, and getting a handle on whether they can expand their spending on abortion care.

How could we solve this issue? (Not knowing is okay!)

Let's build a script that generates information about the following expenditures per month, per quarter, and per year. Use the initial call date column for purposes of figuring out what date something happened unless otherwise noted.
Here are some things that would be useful for funds to know. Please feel free to do as many of them as you are interested in -- don't feel like you have to do the whole set!
This is data that would be interesting to look at monthly and quarterly:

number of patients (raw rows)
number of cash promised to patients (where fund pledge values is present)
number of pledged patients (where fund pledge is present and Pledge sent is true)

And this quarterly and yearly data:

how many patients where pledge sent is true have gone to each clinic? (e.g. how much is a fund working with a clinic?)

You should also feel free to poke at anything that looks interesting to you! And feel free to use your discretion at how to report results.

Anything else?

Again, please make pull requests against https://github.com/DCAFEngineering/dcaf_analytics !

Also these are all fake records, so if there's a weird pattern in the data, it's probably that the script I used to generate them isn't that great.

fake_daria_data.zip

commenting on this to claim as work for today

The start of some analysis in R:
`require(ggplot2)
require(dplyr)
require(readr)
REPLACE patient_data_export_20191019.csv WITH THE NAME OF YOUR DOC
df <- read.csv("patient_data_export_20191019.csv")
Data Cleaning -----------------------------------------------------------
df$Initial.Call.Date <- as.Date(as.character(paste(df$Initial.Call.Date)), format="%m/%d/%y")
df$Initial.Call.MonthYear <- format(as.Date(df$Initial.Call.Date), "%Y-%m")
Total Patients by Month, Quarter ----------------------------------------
monthly_patients <- df %>%
group_by(Initial.Call.MonthYear, Line) %>%
summarise(freq = n())
monthly_patients$Line <- as.character(paste(monthly_patients$Line))
monthly_patients$Initial.Call.MonthYear <- paste0(monthly_patients$Initial.Call.MonthYear, '-01')
monthly_patients$Initial.Call.MonthYear <- as.Date(monthly_patients$Initial.Call.MonthYear, "%Y-%m-%d")
ggplot(monthly_patients, aes(x=Initial.Call.MonthYear, y=freq, color=Line)) +
geom_line() + geom_point() +
labs(title ="Total Patients by Month", x = "Initial Call Month", y = "Patients") +
theme_minimal() + theme(axis.text = element_text(size=12),
axis.text.x = element_text(angle = 90),
axis.title = element_text(size=16),
plot.title = element_text(size=24),
axis.title.y = element_text(margin = margin(r = 10)),
axis.title.x = element_text(margin = margin(t = 15)))`

@ealiao did some incredible work in shiny that I am posting in here: https://codefordc.slack.com/archives/C0E6APB36/p1573004761218900
library(shiny)
library(highcharter)
library(dplyr)

# Define UI for data upload app ----
ui <- fluidPage(

  # App title ----
  titlePanel("DARIA Analytics"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(

      # Input: Select a file ----
      fileInput("file1", "Choose CSV File",
                multiple = FALSE,
                accept = c("text/csv",
                           "text/comma-separated-values,text/plain",
                           ".csv")),

      # Horizontal line ----
      tags$hr()

    ),

    # Main panel for displaying outputs ----
    mainPanel(
      # Output: Data file ----
      h3("Patients by Month and Line"),
      highchartOutput("patients_by_month")
    )
  )
)

# Define server logic to read selected file ----
server <- function(input, output) {

    output$patients_by_month <- renderHighchart({
      req(input$file1)

      df <- read.csv(input$file1$datapath)

      # Clean Data
      df$Initial.Call.Date <- as.Date(as.character(paste(df$Initial.Call.Date)), format="%m/%d/%y")
      df$Initial.Call.MonthYear <- format(as.Date(df$Initial.Call.Date), "%Y-%m")
      df$Initial.Call.MonthYear <- as.Date(paste0(df$Initial.Call.MonthYear, '-01'), "%Y-%m-%d")
      df$pledged <- df$Pledge.sent == TRUE & df$Fund.pledge > 0 & !is.na(df$Fund.pledge)
      df$Line <- as.character(paste(df$Line))

      # Total Patients by Month
      monthly_patients <- df %>%
        group_by(Initial.Call.MonthYear, Line) %>%
        summarise(freq = n())

      hc <- hchart(monthly_patients, "line", hcaes(x = Initial.Call.MonthYear, y = freq, group = Line)) %>%
        hc_add_theme(hc_theme_smpl())
      hc
    })

}

# Create Shiny app ----
shinyApp(ui, server)

We were trying to explore something like this with mode analytics but I wonder if another approach might be to stand up an analyzer app like this that people can load an export into and go wild on. Benefits to this approach:

data sciencey people would have a bunch of hacknight tickets/reports to build
empower basically anyone with a DARIA export to look at charts with minimal technical expertise
the ruby team has basically never gotten to the reporting module

Scary things about this approach:

don't know how secure and safe shiny is
don't know anything about shiny really
do we have the R expertise to manage this? (probably @ealiao does at least?)

OBE


Develop branch does not run with GNU: Segmentation fault - invalid memory reference.

After #56 was fixed by #57, @mathomp4 was lazy and didn't do an actual run test, just a build. Well, comes the nightly tests and, bam!, error. To wit, when trying to run a c24 job with GCC 8.2:
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

My debug run got a bit of a traceback:
#0  0x2aaab582e90f in ???
#1  0xb9270d4 in __mapl_extdatacollectionmod_MOD_find
	at /discover/nobackup/mathomp4/SystemTests/builds/AGCM_GITHUBDEVGNU/CURRENT/GEOSgcm/src/Shared/@MAPL/MAPL_Base/MAPL_ExtDataCollection.F90:101
#2  0xb62213f in makemetadata
	at /discover/nobackup/mathomp4/SystemTests/builds/AGCM_GITHUBDEVGNU/CURRENT/GEOSgcm/src/Shared/@MAPL/MAPL_Base/MAPL_ExtDataGridCompMod.F90:2684
#3  0xb631e7a in getlevs
	at /discover/nobackup/mathomp4/SystemTests/builds/AGCM_GITHUBDEVGNU/CURRENT/GEOSgcm/src/Shared/@MAPL/MAPL_Base/MAPL_ExtDataGridCompMod.F90:2089
#4  0xb653810 in initialize_
	at /discover/nobackup/mathomp4/SystemTests/builds/AGCM_GITHUBDEVGNU/CURRENT/GEOSgcm/src/Shared/@MAPL/MAPL_Base/MAPL_ExtDataGridCompMod.F90:1117

The offending line 100 is in code that is a bit beyond me and more in @bena-nasa territory:
https://github.com/GEOS-ESM/MAPL/blob/384432f454f93a577418f4cd8c9d9534b3f5e65b/MAPL_Base/MAPL_ExtDataCollection.F90#L93-L102
I'm such a tyro that I tried doing a write of basic_metadata which apparently is a no-no. Shows how much I know. :man_shrugging:
Thus, I move to the experts.

In order to build with GCC 8, you'll want to copy over:
/gpfsm/dhome/mathomp4/GitG5Modules/SLES11/5.2.7-Github/g5_modules.gcc8

to @env/g5_modules

Ugh.

Thanks to Baselibs 6.0.2 (gFTL fix) and #97 this is closed (for GCC 8).


How to handle fans with only Up/Down buttons for multiple fan speeds

Hi all,
Has anyone dealt with a nice way to handle fans that:

Only have Up/Down buttons to transition between multiple fan speeds (in this case 6 speeds that wrap around from highest back to lowest and vice versa); and
Have a reverse button.

When I look at the SmartIR fan examples, none seem to cater for this (as far as I see)??
At the moment this is my config (note: it has no 'On' button so I re-use the 'Up' button to turn the fan on):
{
  "manufacturer": "Hunter Pacific",
  "supportedModels": [
    "Revolution Attitude - Lounge Room"
  ],
  "supportedController": "Broadlink",
  "commandsEncoding": "Base64",
  "speed": [
    "up",
    "down"
  ],
  "commands": {
    "on": "shE0AAkAATwLHgseHwoMHh8KHwofCwseCx4fCgsfCx4LHgsfHgsLHh8KCx4LHgseCx4fCgseHww=",
    "off": "shQ0AAkAATsMHgseHwoLHh8KHwofCwseCx4fCgsfCx4LHgseHwoLHh8KCx4LHwseHwoKHgseCyA=",
    "default": {
      "up": "shI0AAkAATwLHgseHwsLHh8KHwofCgseCx4fCgseCx4LHgseHgoLHh8KCx8LHgseHwoeCwsfHgw=",
      "down": "shE0AAkAATwLHgseHwoMHh8KHwofCwseCx4fCgsfCx4LHgsfHgsLHh8KCx4LHgseCx4fCgseHww="
    },
    "reverse": "shA0AAkAATsLHgseHwoLHh8KHwofCgseCx4fCwoeCx4LHgseHwoLHh8KCx4LHgseCx4fCh8KHgw="
  }
}

This doesn't really work well in Home Assistant though as it only displays a fan slider with 2 settings.

I am in the same situation, have you found any solution?

Sorry @catatonico2  for the slow reply. No I still haven't found a way to achieve this. I just revisited the topic again hoping to find updates.


dart:html FontFace.loaded returning Future instead of Future with NNBD breaks a test

Test:
lib_2/html/fontface_loaded_test
Error:
Caught Expected a value of type 'Future', but got one of type 'NativeJavaScriptObject'
Root Cause:
In the autogenerated file sdk_nnbd/lib/html/dart2js/html_dart2js.dart, FontFace.loaded seems to have changed vs. sdk/lib/html/dart2js/html_dart2js.dart.

https://dart-review.googlesource.com/c/sdk/+/134902


Add the continue button?

Could you add the continue button back with this mod?

This mod adds the continue button: https://www.curseforge.com/minecraft/mc-mods/continue-button


Do a generic type parameter cleanup pass

We had one of these a while ago but it has devolved a bit. WidgetApplier.kt is a mess, for example.
I think we should do:

A - treehouse App service
V - native View type
W - subtype of a Widget

We also could do AppT, ViewT, and WidgetT to really be unambiguous and free up single-letter ones to be whatever, especially in the light of the next sentence.
Otherwise prefer T. We have some Rs for return value and Es for elements. There's also a P for a Widget.Provider subtype. The lint tooling has a function with Items, Keys, and Groups.

@JakeWharton should we go across all generics in the repository or just WidgetApplier.kt ?🙈

I think the whole repository needs this

@JakeWharton I think it's essential, too. I will update my draft PR to this scope.
On another subject: can I contribute to any i
Open issue, or should I stick to the pr-welcome label?

If you're doing the whole repo, I would consider only doing one type parameter at a time (such as all the ones which represent view type) in individual PRs.

If you're doing the whole repo, I would consider only doing one type parameter at a time (such as all the ones which represent view type) in individual PRs.

That is helpful, I will follow this 👌


Scop dataset

New dataset with all single chain PDBs that have a SCOP annotation.
The 'protein' key for each protein now contains the following attributes:
'SCOP-TP': '1',
'SCOP-CL': '1000002',
'SCOP-CF': '2000016',
'SCOP-SF': '3001156',
'SCOP-FA': '4003986'

Each attribute gives the classification for the domain at each level of the SCOP hierarchy.
Annotations are fetched from here
TP=protein type, CL=protein class, CF=fold, SF=superfamily, FA=family
See here for more info.

p.s. I added a test file for tasks.


Revise docs landing page (Docsy alignment)

Drop some vestigial <br> elements from the docs portal page, and tweak how we do the styling.
Also avoid a repeated id value across different buttons.
Helps get us ready to use vanilla Docsy - see https://github.com/kubernetes/website/issues/41171
/area web-development
/priority backlog
Before | After

/lgtm

/approve


remove duplications

I signed it!

This pull request is unsafe. It is not valid to do --s->refs outside a lock. I'm going to close the PR.


s3-compatible storage forced to use AWS s3 path

I am trying to refer to a local minio instance within the cluster definition; however, specifying destinationPath as s3://... forces an AWS uri.
Cluster specification (trucated):
  backup:
    barmanObjectStore:
      destinationPath: "s3://bucketname"
      endpointURL: "https://nas.mydomain.com:9000"
      s3Credentials:
        accessKeyId:
          name: s3-secret
          key: ACCESS_KEY_ID
        secretAccessKey:
          name: s3-secret
          key: ACCESS_SECRET_KEY
        # region: us-east

Logs:
{"level":"info","ts":1657506747.8125663,"logger":"wal-archive","msg":"barman-cloud-check-wal-archive checking the first wal","logging_pod":"cnpg-1"}
{
  level":"info",
  "ts":1657506753.449887,
  "logger":"barman-cloud-check-wal-archive",
  "msg":"2022-07-11 02:32:33,449 [145] ERROR: Can't connect to cloud provider: Could not connect to the endpoint URL: \"https://s3.us-east.amazonaws.com/cnpg\"",
  "pipe":"stderr",
  "logging_pod":"cnpg-1"
}
{
  "level":"error",
  "ts":1657506753.4828458,
  "logger":"wal-archive",
  "msg":"Error invoking barman-cloud-check-wal-archive",
  "logging_pod":"cnpg-1",
  "currentPrimary":"cnpg-1",
  "targetPrimary":"cnpg-1",
  "options":
    [
      "--endpoint-url",
      "https://nas.mydomain.com:9000",
      "--cloud-provider",
      "aws-s3",
      "s3://cnpg",
      "cnpg"
    ],
  "exitCode":-1,
  "error":"exit status 2",
  "stacktrace":"github.com/cloudnative-pg/cloudnative-pg/pkg/management/barman/archiver.(*WALArchiver).CheckWalArchiveDestination\n\tpkg/management/barman/archiver/archiver.go:234\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/walarchive.checkWalArchive\n\tinternal/cmd/manager/walarchive/cmd.go:381\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/walarchive.run\n\tinternal/cmd/manager/walarchive/cmd.go:166\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/walarchive.NewCmd.func1\n\tinternal/cmd/manager/walarchive/cmd.go:80\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.4.0/command.go:856\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902\nmain.main\n\tcmd/manager/main.go:61\nruntime.main\n\t/opt/hostedtoolcache/go/1.17.10/x64/src/runtime/proc.go:255"}

If I do not specify the s3:// prefix for destinationPath, I get a different error:
{"level":"info","ts":1657507208.411864,"logger":"wal-archive","msg":"barman-cloud-check-wal-archive checking the first wal","logging_pod":"cnpg-1"}
{
  "level":"info",
  "ts":1657507208.5482411,
  "logger":"barman-cloud-check-wal-archive",
  "msg":"2022-07-11 02:40:08,548 [141] ERROR: Barman cloud WAL archive check exception: Invalid s3 URL address: cnpg",
  "pipe":"stderr",
  "logging_pod":"cnpg-1"
}
{
  "level":"error",
  "ts":1657507208.5699892,
  "logger":"wal-archive",
  "msg":"Error invoking barman-cloud-check-wal-archive",
  "logging_pod":"cnpg-1",
  "currentPrimary":"cnpg-1",
  "targetPrimary":"cnpg-1",
  "options":
    [
      "--endpoint-url",
      "https://nas.mydomain.com:9000",
      "--cloud-provider",
      "aws-s3",
      "cnpg",
      "cnpg"
    ],
  "exitCode":-1,
  "error":"exit status 4",
  "stacktrace":"github.com/cloudnative-pg/cloudnative-pg/pkg/management/barman/archiver.(*WALArchiver).CheckWalArchiveDestination\n\tpkg/management/barman/archiver/archiver.go:234\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/walarchive.checkWalArchive\n\tinternal/cmd/manager/walarchive/cmd.go:381\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/walarchive.run\n\tinternal/cmd/manager/walarchive/cmd.go:166\ngithub.com/cloudnative-pg/cloudnative-pg/internal/cmd/manager/walarchive.NewCmd.func1\n\tinternal/cmd/manager/walarchive/cmd.go:80\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.4.0/command.go:856\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902\nmain.main\n\tcmd/manager/main.go:61\nruntime.main\n\t/opt/hostedtoolcache/go/1.17.10/x64/src/runtime/proc.go:255"
}

I have deployed the operator via helm chart, version 0.13.1

By upgrading to operator v0.14 and including region, the erroneous s3 url is resolved.  However, I am getting a different error now (I think because I am using https for the endpointURL):
{"level":"info","ts":1657588331.347125,"logger":"barman-cloud-wal-archive","msg":"2022-07-12 01:12:11,346 [148] ERROR: Barman cloud WAL archiver exception: An error occurred (NotImplemented) when calling the PutObject operation: Server side encryption specified but KMS is not configured","pipe":"stderr","logging_pod":"cnpg-1"}
{"level":"error","ts":1657588331.3814707,"msg":"Error invoking barman-cloud-wal-archive","logging_pod":"cnpg-1","walName":"pg_wal/000000010000000000000001","currentPrimary":"cnpg-1","targetPrimary":"cnpg-1","options":["--gzip","-e","AES256","--endpoint-url","https://nas.mydomain.com:9000","--cloud-provider","aws-s3","s3://cnpg","cnpg","pg_wal/000000010000000000000001"],"exitCode":-1,"error":"exit status 4","stacktrace":"github.com/cloudnative-pg/cloudnative-pg/pkg/management/log.Error\n\tpkg/management/log/log.go:165\ngithub.com/cloudnative-pg/cloudnative-pg/pkg/management/barman/archiver.(*WALArchiver).Archive\n\tpkg/management/barman/archiver/archiver.go:173\ngithub.com/cloudnative-pg/cloudnative-pg/pkg/management/barman/archiver.(*WALArchiver).ArchiveList.func1\n\tpkg/management/barman/archiver/archiver.go:118"}
{"level":"info","ts":1657588331.3815506,"logger":"wal-archive","msg":"Failed archiving WAL: PostgreSQL will retry","logging_pod":"cnpg-1","walName":"pg_wal/000000010000000000000001","startTime":1657588329.502264,"endTime":1657588331.3815458,"elapsedWalTime":1.879281724,"error":"unexpected failure invoking barman-cloud-wal-archive: exit status 4"}

updated cluster definition:
# ...
 backup:
    barmanObjectStore:
      destinationPath: "s3://bucketname"
      endpointURL: "https://nas.mydomain.com:9000"
      s3Credentials:
        accessKeyId:
          name: s3-secret
          key: ACCESS_KEY_ID
        secretAccessKey:
          name: s3-secret
          key: ACCESS_SECRET_KEY
        region:
          name: s3-secret
          key: REGION

@ahgraber hi!
Have you tried using the sample file in the code that use minio for the backup?
On the other hand, what do you mean by "operator v0.14", do you mean the chart version?
Related to the HTTPS endpoint URL, there's an option backup.barmanObjectStore.endpointCA that must contain the CA of the endpoint so you will not have that error.
I'm converting this into a discussion, since doesn't seem to be an issue, if we found out that there was an issue we can create an issue starting on that discussion.
Regards!


Empty implementation-title attribute in manifest.mf file

After building a Jar file with spring boot, I get an empty Implementation-Title attribute in my manifest. If I remove the vaadin gradle, the attribute is created.

This do the trick for now :)
´´´
jar {
doFirst {
manifest {
attributes(
"Implementation-Title": "Flavourite Backend",
"Implementation-Version": "${version}"
)
}
}
}
´´´


Layout and Buffer Update

Is this pull request associated with an issue(s)?
No
Description
Adds ctors to the Layouts that only take a shape, allowing for less verbose construction when there is no symmetry or sparsity. Renames variables in the Layout tests in an attempt to be more descriptive.
Also changes the typename of  tensorwrapper::eigen::tensor (and related types) to tensorwrapper::eigen::data_type, to avoid potential confusion around what "tensor" means in a given location. In general, "tensor" should refer to the primary class tensorwrapper::Tensor, while tensor-like data structures of a backend should be referred to as "data" (or something synonymous).

🚀 [bumpr] Bumped! New version:v0.0.34 Changes:v0.0.33...v0.0.34


i get how to make it working ?

Module discord_webhook not installed, to install run 'py -3 -m pip install discord_webhook'
Press enter to exit

yeah i have installt it but its not working

pls help me my discord is

noedelsoep_#0010

noedelsoep_ 0010

What have you tried so far

do like open a cmd in that file end do py -3 -m pip install discord_webhook
en than i get this

why is the webhook not working

do like open a cmd in that file end do py -3 -m pip install discord_webhook
en than i get this

it says u alrdy have the libary installed

Alright i will close this issue due to inactivity


Use the mssql proxy service for E2E tests

Invoking the proxy service, as opposed to the Secretless binary, makes it possible to avoid the perils of static configuration. It gives the E2E tester more flexibility in exercising a variety of test cases, all generated in-process.
I added a test cases that uses this method TestConnectorE2E. The logs for it are presented below. There's also a mock MSSQL server that captures incoming packets.
Perhaps the mock MSSQL server could be removed and instead we can use tshark while talking to an actual server. This is one of the benefits of this approach of invoking the proxy service, both the Secretless and server can be configured at runtime.
=== RUN   TestConnectorE2E
2020/04/09 14:38:03 [INFO]  Starting service
2020/04/09 14:38:03 [INFO]  [TEST]: Client connecting to  <IP_ADDRESS> 56295
2020/04/09 14:38:03 [DEBUG] New connection on <IP_ADDRESS>:56295.
2020/04/09 14:38:03 [DEBUG] Constructing connection details
2020/04/09 14:38:03 [DEBUG] Constructing MSSQL connector
2020/04/09 14:38:03 [DEBUG] Waiting for server connection
2020/04/09 14:38:03 [DEBUG] Off to the races
2020/04/09 14:38:03 [DEBUG] Proxying connection on <IP_ADDRESS>:56295 to <IP_ADDRESS>:56294.
2020/04/09 14:38:03 [DEBUG] Connection on <IP_ADDRESS>:56295 closed by target.
2020/04/09 14:38:03 [INFO]  [TEST]: Captured: %v &{map[0:[14 0 12 166 0 0] 1:[2] 2:[0] 3:[0 0 0 0] 4:[0]] {{1946157060 4096 117440512 44179 0 224 3 32 16 -60 1033 kumbirai-t   SQLCMD <IP_ADDRESS>,56295 [182 0 0 0] [9 1 0 0 0 1 10 1 0 0 0 1 1 0 0 0 0 255] ODBC  test-db [255 255 255 255 255 255] []  }}}
2020/04/09 14:38:03 [INFO]  Stopping service
2020/04/09 14:38:03 [INFO]  Listener closed
--- PASS: TestConnectorE2E (0.06s)
PASS
ok      command-line-arguments  0.072s

Invoking the proxy service, as opposed to the Secretless binary, makes it possible to avoid the perils of static configuration.

I don't understand what this means

Perhaps the mock MSSQL server could be removed and instead we can use tshark while talking to an actual server.

This sounds like it's adding:

A new tool
A lot of complexity
Making it not a unit test anymore

This is a really good example of the big impact invisible decisions I've been talking about a lot recently.
I'm not saying this is a good or bad idea yet.  I'm saying this is the kind of thing that is probably a much bigger long term consequences than you think, and yet the decision could be made quite lightly.  I'd like to really understand what this means, what problem it's solving, why we can't solve it with our existing test methods, and so on, before actually doing it.

@jonahx's point merits consideration. I also think it's worth asking what these "integration" tests are intended to do. Are they meant to be a step above unit tests, and testing flows with mocked "realistic" servers? Or are we actually testing that the compiled binary works when used together with a running (usually Dockerized) target service? Even in that case, it's not what I'd call an "end-to-end test", since we're not really replicating a production environment, so there might be unexpected challenges that arise when you try to run the same system in a Kubernetes pod, for example.
In other words, there are a spectrum of tests we could run. We have a stronger unit testing philosophy for this project now. Our integration testing philosophy has been what I would characterize as "run the tools in a docker-compose network and validate that they work as expected in that environment". Do we want to move to lower-level integration tests that use tshark to mock the service and invoke the golang code directly rather than using the binary in an image? What might we lose if we do make that transition, and what might we gain? Is there value in just having additional tiers of testing that allow us to test more of a range of environments, from less realistic to more realistic / less complex to run to more complex to run?

After spending some time working on the connector today and discussing this with @doodlesbykumbi, I think there is some value in pursuing this type of end to end test. Specifically, we'd like to be able to test that the proper input creates the proper output without having to spin up an entire mock mssql server and define a secretless.yml entry for each. For example, when we pass in sslmode=require, we only want to test that the parameter is propagated through the connector, to the driver, and back out. Having a framework for listening / intercepting these low level pieces of information and verifying propagation is extremely useful for debugging, as integration tests are costly in terms of time and resources and don't easily expose this information.

After spending some time working on the connector today and discussing this with @doodlesbykumbi, I think there is some value in pursuing this type of end to end test. Specifically, we'd like to be able to test that the proper input creates the proper output without having to spin up an entire mock mssql server and define a secretless.yml entry for each. For example, when we pass in sslmode=require, we only want to test that the parameter is propagated through the connector, to the driver, and back out. Having a framework for listening / intercepting these low level pieces of information and verifying propagation is extremely useful for debugging, as integration tests are costly in terms of time and resources and don't easily expose this information.
Therefore, I think the benefit is twofold, both in assuring that our individual pieces interact properly without needing to run the entire end to end test, and providing a much more accessible and exposed way to debug information that passed through multiple services. What's more, this example can be used for abstracting and implementing the same features to our other connector tests.
There may need to be a discussion around where this is located, as it is more lightweight than an integration test, but slightly more involved than a single unit test. As-is, our folder structure only supports those two test structures, but this lies somewhere in-between. It is, however, no less important, in my opinion.

Just adding a TLDR of a conversation I had with Kumbi about this on the phone.
Basically, we agreed that the code should stay and be documented as essentially "debug utilities" for devs, which most devs could ignore unless they needed to do debug work on this.
The actual offical tests would remain e2e, thus not enlarging the scope of tools one must understand to grok tests of our basic functionality.  Also, keeping the tests conceptually simple.

This was superseded by https://github.com/cyberark/secretless-broker/pull/1208


[Wildsea] Create a character sheet for the Wildsea RPG

Changes / Comments

Created the character sheet for the Wildsea RPG.
Has a roll button at the top right of the sheet, this can be used for every roll in the game.

I am creating this again to see if it fixes the failing checks; I added newlines at the end of all files.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
Yep
[x] Is this a bug fix?
This is the initial commit, so I guess I fixed any bugs I had when first creating it
[x] Does this add functional enhancements (new features or extending existing features) ?
This adds an entire character sheet, so they are all new features
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
There is custom layout for the sheet
[x] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
This is the first sheet for this game so there is no existing data
[x] If this is a new sheet, did you follow Building Character Sheets standards ?
Yes, I did

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.

The fix didn't work, I am going to create a new branch.


Replace http package with generated code from swagger

Resources

https://swagger.io/tools/swagger-codegen/

Done: https://github.com/conductor-sdk/conductor-go/releases/tag/v1.2.3


np.quantile: deprecated interpolation argument

Thanks a lot for writing this very interesting paper and for publishing the notebooks.
FYI, the interpolation argument appears to be deprecated in recent versions of numpy.quantile:
https://numpy.org/devdocs/reference/generated/numpy.quantile.html

Thank you, Vincent!
I kept the interpolation argument for backwards-compatibility, but in the future might remove it.
Did you get an error or just a warning when you ran the code?

Oh no, not at. I just happened to click on the help file while I was running your notebooks and noticed this.
Will close since you are aware.
Thanks again for the public goods!

My pleasure, thank you Vincent!!


Allow expressions in HTML attribute names for certain types

Currently If I put an expression in the html next to an attribute:
 @if( item.action instanceof HTMXAction action)

@endif

I get this error
Illegal HTML attribute name ${action}! Expressions in HTML attribute names are not allowed.
In our use case we have a record that represents HTMX attributes:
public record HTMXAction(String path, String target, Type type, Swap swa)
According to this it is for html sanitation -> https://github.com/casid/jte/issues/300#issuecomment-1820709769
I think there are several ways to implement this while still allowing sanitation .
One way would be to have a certain type similar to Content that would allow for expressions in attributes.
public class HtmxAction implements HtmlAttributeList{
   private final String htmxType = "hx-get";
  private final String path = "/helloWorld";
   @Override
  public void writeTo(TemplateOutput output){
     output.writeAttribute(htmxType, path)
  }
}

What do you think about this idea?
It would allow to have much cleaner html templates

Sounds complicated to me.
If I recall correctly there has been a similiar issue: https://github.com/casid/jte/pull/256 Maybe one of the solutions there would help?

Ok, thanks for the pointer.
Will take a look next week!

Hey @casid.
Finally got some time to try it out. I tried it out both with $unsafe and the custom Policy, but it does not behave like I would expect it
public static final String htmx = "hx-get=/helloWorld hx-swap=outerHTML";
This HTML:

is rendered to this:

this:

is rendered to

What do you think?

Ugh, that's indeed unexpected!
Problem is, that $unsafe{htmx} / ${htmx} is parsed as attribute name and thus not evaluated by jte.
I've pushed a fix for this, could you have a try if this improves for you with the latest snapshot version?

What is the maven Repository URL for snapshots?
I tried https://s01.oss.sonatype.org/content/repositories/snapshots/ but it didn't find it.

@casid
Works with the SNAPSHOT!

@tschuehly  I'm also interested in creating a helper for htmx attributes. Do you have an example of what is working for you?
My goal is to make something like this work:
@param hx: HtmxHelper

Click me

That would generate:

Click me

My helper would handle the escaping if $unsafe were needed.

@checketts
Here I have an example of a config that works: https://github.com/tschuehly/easy-spring-auth/commit/731c0f3d769e8e27410e49cab570ae0a135df7c2
I'm not really sure how to approach this the best. I really come to like using static public final variables to make it easy to see what controller endpoint htmx is calling:
<button hx-get="${URI(GET_EDIT_USER_MODAL,uuid)}"
               hx-target="#${MODAL_CONTAINER_ID}">

</button>

  public static final String GET_EDIT_USER_MODAL = "/save-user/modal/{uuid}";

  @GetMapping(GET_EDIT_USER_MODAL)
  public ViewContext editUserModal(@PathVariable UUID uuid) {
    return editUserComponent.render(uuid);
 }
```
[UserRowComponent](https://github.com/tschuehly/easy-spring-auth/blob/45c6420b973cf562d2968b48a5aae833ab5f8b17/src/main/java/de/tschuehly/easy/spring/auth/user/management/table/row/UserRowComponent.jte#L19)

For the templates you could create a HTMX object that is then stringified to htmx attributes.
In a Spring specific context I'm thinking of maybe creating a RequestMapping annotation that takes that HTMX object and creates a mapping. This way you still have the easy navigation where it is used.

maybe interesting to you aswell:
[HtmxUtil.java](https://github.com/tschuehly/easy-spring-auth/blob/lab-3/src/main/java/de/tschuehly/easy/spring/auth/htmx/HtmxUtil.java)


[Freetype] burn in linkage

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

🔥🔥🔥🔥🔥🔥


Experiment with making a card into an issue

Blah we are the bestest.

Wow that worked really well. Let's close this issue and see what happens to the card.

TO see if comments can be made after closure.


Can i get card owner name?

Great work.
I was wondering if you can add a field for Card Owner name, I think it will be great.

@g88k  ,  this can be done. It would be be an optional field based on developers customization. If you have any update to this effect, kindly send a PR and integration can continue from there.
Thanks


Feature Request: Watch for SPGo.json Updates

My team uses different branches for different environments. It's nice that we can have different SP site URLs in SPGo.json, but when we switch environments SPGo is still caching the previous URL. If it could check the sharePointSiteUrl parameter before an operation (ok to assume the security model/context is the same, IMO), that would enable us to switch environments without having to reload VS Code.

Hello @ChrisRomp !
SPGo should automatically refresh the in-memory config object any time a change made to the SPGo.json. The only thing that would cause the config file to not refresh would be a file schema error, or possibly some issue where SPGo is not correctly parsing the new config data.
Repro Steps

open SPGo.
update a file.
save the file to the server (either by ctrl+s or using the publishing controls)
verify the file was saved to the correct SharePoint site specified in the config.
update SPGo.json, enter the URL of a different SharePoint site.
save the SPGo.json file - ensure there are no errors in the output log.
save/publish the file again
verify if the file was saved to the original SharePoint site, or the new site specified in SPGO.json

Also, if you are still seeing the issue after following the steps above, can you look in the output window for all items scoped to SPGo and send any errors you see? Can you share your config file (feel free to mask customer data)?

@sg-chrishasz,
I'm using the default schema except I've added a remoteFolders section.
I have two site collections, let's call them "QA" and "Prod." In QA the SPGo.json file has sharePointSiteUrl set to https://tenant.sharepoint.com/sites/qa and in prod it's .../prod.
I will have (for example) a config.js file on the SharePoint server that has something specific to its environment, let's say a URL. If I open VSCode with the QA branch checked out, and then compare the file to the server, it is correct.
Then if in git I check-out the prod branch, the sharePointSiteUrl changes to .../prod. If I run a "compare with server" the system queries the QA server for config.js and highlights the differences between them. I can open SPGo.json, make an arbitrary change like hitting space then backspace, save it, and then it seems to pick up the change and my comparison will check the config.js file in prod.
So it seems that for whatever reason SPGo isn't "noticing" the change in SPGo.json when it happens via git (even though VSCode does show the update in the code editor).
From the console, no errors are reported that appear related to this (there are some other misc. messages related to not finding config.js.git when I open config.js, for example). When I git checkout the prod branch, nothing appears in the SPGo console, however then when I hit space/backspace and hit save, Configuration file reloaded is printed, seeming to verify my hypothesis that SPGo isn't reloading on git checkout.
Thanks!

Thanks for the thorough repro steps. SPGo currently reloads the config file only if it is edited inside VSCode. Any external program (e.g. git) that makes changes directly to the file will not be reflected immediately immediately inside of VSCode.
I will need to rebuild the configuration object to support live reloads, but I can make this change. That said, I like caching the object internally as an optimization, so I may add that as a configurable parameter later if people begin experiencing performance issues.

Maybe better is to have a command that will reload the config. Is there already one?

Sounds great!

Done - SPGO 1.2.4 has been published to VS Marketplace.
I appreciate the feedback and support!