Update sbt-typelevel, ... to 0.7.2

About this PR
📦 Updates

org.typelevel:sbt-typelevel
org.typelevel:sbt-typelevel-ci-release

from 0.6.7 to 0.7.2
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.typelevel" }
}]

labels: sbt-plugin-update, early-semver-major, semver-spec-minor, version-scheme:early-semver, commit-count:n:2

Superseded by #53.


zwift no longer runs with GPU acceleration

zwift no longer runs with GPU acceleration. Very unfortunate. After Nvidea reinstall drivers, no luck. updated as much as possible. Running under Ubuntu 22.04.5 LTS

Maybe you are affected by same issue as #167 ?

I'm actually in the middle of debugging my own system on an older pc running nixos.

Seems I have the same issue when running docker. All CPU and no GPU utilization.
However when I switched to podman, then the Nvidia container toolkit integration worked nicely.
Do you have a Nvidia GPU? Running docker or podman?

Nvidia and docker.

Guess you have to test and see if you can get  hw accel, by using other image (i.e image with glxgears) and see if you can get any hw accel that way. Can't really assist everyone that has trouble with installing container-toolkit unfortunately.

I got (probably) the same issue with docker, and successfully made GPU work with podman instead. I don’t really know why, but here’s some more details for someone who just wants to make it work: https://wmnsk.com/posts/20241003-zwift-on-ubuntu/

Yeah, i think has been for some time now that nvidia has changed the way they integrate gpus into containers, (nvidia-ctk, cdi's and so on). But haven't really been active and following these changes. But I guess that might be some of the reasons why some are affected with no gpu acceleration, me included.
But yeah, for now I just wanted to get zwift running, so opted for podman, which seems to have better integration with nvidia, at least on my system which uses legacy drivers (390)
For anyone else running nixos, I have it working with the following setup:
  nixpkgs.config.nvidia.acceptLicense = true;

  virtualisation = {
    podman = {
      enable = true;
      enableNvidia = true;
    };
  };

  hardware.graphics.enable32Bit = true;
  hardware.nvidia.modesetting.enable = true;
  hardware.nvidia.nvidiaSettings = true;
  hardware.nvidia.powerManagement.enable = true;
  hardware.nvidia-container-toolkit.enable = true;
  hardware.nvidia.open = false;
  hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_390; #omit if you have newer gfx

  services.xserver = {
    enable = true;
    videoDrivers = [ "nvidia" "nvidiaLegacy390" ]; #nvidia suffices for those with newer gfx cards.
  };

Thanks for looking into it. Unfortunately I don't have time to delve deeper into Podman. podman and Nvidia are now causing problems for which I cannot quickly find a solution. Just like others. Zwift should work now. Unfortunately I'm back to Windows :-(

I think you had the same problem I did.  I was running pop os, which is based off ubuntu 22.04.   The issue is that the nvidia container ubuntu packages for 22.04 are way out of date.   You'll need to force the use of the newer ones.  There are more details here https://github.com/netbrain/zwift/issues/163 but this is the gist of it.  In your case pop-default-settings will probably be an ubuntu specific file.
Add this entry in /etc/apt/preferences.d/pop-default-settings to prioritize the nvidia depot over the pop one. Went from version 1.12 to 1.16. My guess is 1.12 is incompatible with the latest nvidia driver.

Package: *
Pin: origin nvidia.github.io
Pin-Priority: 1002

Same issue with Fedora host, docker, nvidia proprietary v560.  I am able to run nvidia-smi within the zwift container and it looks fine to me.  Doesn't this suggest my nv container toolkit is working properly?

@mayfield  nvida-smi would run through the container for me, but anything that tried to use the cpu to render something wouldn't work.  Not a whole lot of error output.  What version of the nvidia container toolkit are you using?

Looks like the change from #147 fixes my platform.  I assume that's not published to :latest yet as I had to manually run with -e NVIDIA_DRIVER_CAPABILITIES=all

@mayfield you kind sir, have just pointed me to a bug or rather, a inconsistency in our build workflow.
The current zwift image doesn't contain the ENV NVIDIA_DRIVER_CAPABILITIES=all , which is due to a squashing behavior that I implemented in order to reduce zwift image size. Will fix and rebuild, after this, the container should work fine without the -e NVIDIA_DRIVER_CAPABILITIES=all

On every zwift update, files that has been deleted, changed or removed, is not actually removed. so cruft get's accumulated over time.  This is the reason for the squashing of the image, this happens every 3 months i believe.
It's a good thing in terms of compatibility, if the zwift team introduces a breaking change, then we as a linux community can simply roll back to the previous version using VERSION=x.x.x zwift
Now however im simply building the image from scratch instead on that same schedule, in order to remove the buildup of cruft as time passes. This means that for every 3 months, a full download of the zwift image is required.
I am tho a bit conflicted if this is the best course of action, maybe the zwift image should not contain anything other than the zwift installer, and upon first load, it should install everything to a named volume, and then update only if it detects a version change.
The reason i've opted to not do this, is to centralize the install & update process, so that user's don't have to deal with it themselves. So for usability, this is better, but maybe some people don't want to download big images on a three month basis?
In any case, this is some of the issue I wanted to handle with: https://github.com/netbrain/zwift/issues/28


Provide Deref{Mut} implementation for AllowStdIO.

Is there anything preventing this, since the get_{ref|mut}() functions are essentially these implementations.

I'm closing this, since I made a PR addressing this.


encoding of boolean dtype in zarr

I want to store an array with<PHONE_NUMBER> boolean values in zarr. I will have to read this array many times, so I am trying to do it as efficiently as possible.
I have noticed that, if we try to write boolean data to zarr from xarray, zarr stores it as i8. ~This means we are using 8x more memory than we actually need.~
In researching this, I actually learned that numpy bools use a full byte of memory 😲!
However, we could still improve performance (albeit very marginally) by skipping the unnecessary dtype encoding that happens here.
Example
import xarray as xr
import zarr
for dtype in ['f8', 'i4', 'bool']:
    ds = xr.DataArray([1, 0]).astype(dtype).to_dataset('foo')
    store = {}
    ds.to_zarr(store)
    za = zarr.open(store)['foo']
    print(dtype, za.dtype, za.attrs.get('dtype'))

gives
f8 float64 None
i4 int32 None
bool int8 bool

So it seems like, during serialization of bool data, xarray is converting the data to int8 and then adding a {'dtype': 'bool'} to the attributes as encoding. When the data is read back, this gets decoded and the data is coerced back to bool.
Problem description
Since zarr is fully capable of storing bool data directly, we should not need to encode the data as i8.
I think this happens in encode_cf_variable:
https://github.com/pydata/xarray/blob/612d390f925e5490314c363e5e368b2a8bd5daf0/xarray/conventions.py#L236
which calls maybe_encode_bools:
https://github.com/pydata/xarray/blob/612d390f925e5490314c363e5e368b2a8bd5daf0/xarray/conventions.py#L105-L112
So maybe we make the boolean encoding optional?
Output of xr.show_versions()

INSTALLED VERSIONS
commit: None
python: 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 09:07:38)
[GCC 7.3.0]
python-bits: 64
OS: Linux
OS-release: 3.10.0-693.17.1.el7.centos.plus.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8
libhdf5: 1.8.18
libnetcdf: <IP_ADDRESS>
xarray: 0.12.1
pandas: 0.20.3
numpy: 1.13.3
scipy: 1.1.0
netCDF4: 1.3.0
pydap: None
h5netcdf: 0.5.0
h5py: 2.7.1
Nio: None
zarr: 2.3.1
cftime: None
nc_time_axis: None
PseudonetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: 1.2.1
dask: 0.19.0+3.g064ebb1
distributed: 1.21.8
matplotlib: 3.0.3
cartopy: 0.16.0
seaborn: 0.8.1
setuptools: 36.6.0
pip: 9.0.1
conda: None
pytest: 3.2.1
IPython: 6.2.1
sphinx: None

So maybe we make the boolean encoding optional?

Sounds good to me! We clearly don't need to be doing with data stored in zarr.

@rabernat : I don't assume you've found a workaround for this?

My approach here was to use compression and filters to minimize the on-disk storage. Here is my .zarray for the dataset in question
{
    "chunks": [
        1,
        13,
        4320,
        4320
    ],
    "compressor": {
        "check": -1,
        "filters": [
            {
                "dist": 1,
                "id": 3
            },
            {
                "id": 33,
                "preset": 1
            }
        ],
        "format": 3,
        "id": "lzma",
        "preset": null
    },
    "dtype": "|i1",
    "fill_value": null,
    "filters": null,
    "order": "C",
    "shape": [
        90,
        13,
        4320,
        4320
    ],
    "zarr_format": 2

This does not solve the in-memory problem, but that's a numpy issue.


Only listen on localhost

WSS was listening on *, which is suboptimal from security perspective.
Make it listen on localhost only.

Oh, thank you for the input and the fix, I wasn't aware of that!


Upload StarRocks Airbyte Connector container to container registry

https://github.com/liuzhongjun89/starrocks-airbyte-connector/issues/4.  Upload to docker hub maybe?

blocker https://github.com/StarRocks/starrocks/issues/24177

blocker is related to Celerdata cloud support.  However container has been moved to starrocks docker hub account.


RuntimeError: Ninja is required to load C++ extensions

I don't know how to solve the problem,please help me!!!

hi I also meet this problem, can you help me?

Sorry，I havn't solved the problem yet.

Install Ninja will help. I solved it.

Install Ninja will help. I solved it.

你好，请问你是怎么解决这个问题的，是用pip安装Ninja 吗，具体是什么版本呢


Update .travis.yml

These are pretty damn annoying. Please remove em :D

@mdarby can you merge this?


VF# solution doesn't load

@brettfo It looks like the xliff merge is the root cause:

And this is latest master:
commit bc9f2a16183285e6c7aef3c5e91d8155bc474127 (HEAD -> master, upstream/master, origin/master, origin/HEAD)
Merge: cf48f76a 76e1d09f
Author: Brett V. Forsgren<EMAIL_ADDRESS>Date:   Tue Dec 5 10:37:50 2017 -0800

    Merge pull request #4051 from brettfo/publish-branches

    change nightly publishing branches to be from GitHub

When doing these sorts of infra merges, can we make sure the solution loads/builds in VS prior to a merge?

I'm sure this is the third time it's broken in the same way.

When doing these sorts of infra merges, can we make sure the solution loads/builds in VS prior to a merge?

The solution loads; since the XliffTasks package is new; you need to re-run build.cmd to restore it first.

Got it - re-running build did the trick. Thanks!


Transaction history

There is no easy way to view the transaction history as of now. A list of past transactions would make a lot of sense imho.
The natural place for that would be in the wallet view, under the balance (and under the jars, if expanded).

Blocked by: https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1358

Related - https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/420.


Allows elasticsearch-http to accept multiple hosts

Our first version of elasticsearch-http had a TODO to support multiple
base urls. This implements that feature using round-robin DNS.
Fixes #1420
Multiple hosts
Most users will supply a DNS name that's mapped to multiple A or AAAA
records. For example, http://elasticsearch:9200 will use normal host
lookups to get the list of IP addresses.
You can alternatively supply a list of http base urls. This list is used
to recover from failures. Note that all ports must be the same, and the
scheme must be http, not https.
Here are some examples:

http://<IP_ADDRESS>:9200,http://<IP_ADDRESS>:9200
http://<IP_ADDRESS>:9200,http://[2001:db8::c001]:9200
http://elasticsearch:9200,http://<IP_ADDRESS>:9200
http://elasticsearch-1:9200,http://elasticsearch-2:9200

cc @openzipkin/elasticsearch

tested locally, by setting ES_HOSTS=http://<IP_ADDRESS>:9200,http://localhost:9200
The first request failed. Then,  the next recovered.
$ curl -s localhost:9411/api/v1/services
{"timestamp":1480405765559,"status":500,"error":"Internal Server Error","exception":"java.lang.IllegalStateException","message":"response failed: Response{protocol=http/1.1, code=503, message=Service Unavailable, url=http://<IP_ADDRESS>:9200/zipkin-*/span/_search?allow_no_indices=true&expand_wildcards=open&ignore_unavailable=true}","path":"/api/v1/services"}
$ curl -s localhost:9411/api/v1/services
["elasticsearch","zipkin-server"]

revised example which shows a slow trace where the connection auto-recovered

will be in zipkin 1.17.1


ROX-21570: retry curls in validation.sh

Description
Similar to:

https://github.com/stackrox/stackrox/pull/9990

https://curl.haxx.se/docs/manpage.html

--retry
If a transient error is returned when curl tries to perform a transfer, it will retry this number of times before giving up. Setting the number to 0 makes curl do no retries (which is the default). Transient error means either: a timeout, an FTP 4xx response code or an HTTP 5xx response code.

Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change
CI
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

/test gke-upgrade-test


Ansys lab importing pmdb file fails

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
Following the pyfluent external compressible flow tutorial in ansys lab, the geometry files seem to correctly download, however the pmdb file fails at the geometry import stage, and an error message is also produced saying the file couldn't be found - this is despite the following message being printed after downloading the example geometry:
File already exists. File path:
/.local/share/ansys_fluent_core/examples/wing.scdoc
File already exists. File path:
/.local/share/ansys_fluent_core/examples/wing.pmdb

Error:
Error: File "/home/jovyan/.local/share/ansys_fluent_core/examples/wing.pmdb" not found.

Error occurred during import.

Importing the selected file(s) could not be completed. Check to make sure that the selected file format is supported. In addition, check to make sure the CAD Readers are properly configured for the format using the CAD Configuration Manager utility.
Error Object: #f

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[4], line 8
      1 geo_import = meshing.workflow.TaskObject["Import Geometry"]
      2 geo_import.Arguments.set_state(
      3     {
      4         "FileName": wing_intermediary_file,
      5     }
      6 )
----> 8 geo_import.Execute()

File /opt/conda/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py:1579, in PyCommand.__call__(self, *args, **kwds)
   1577     if self._get_file_purpose(arg):
   1578         self.before_execute(value)
-> 1579 command = self.service.execute_command(
   1580     self.rules, convert_path_to_se_path(self.path), self.command, kwds
   1581 )
   1582 for arg, value in kwds.items():
   1583     if self._get_file_purpose(arg):

File /opt/conda/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py:491, in DatamodelService.execute_command(self, rules, path, command, args)
    487 request = DataModelProtoModule.ExecuteCommandRequest(
    488     rules=rules, path=path, command=command, wait=True
    489 )
    490 _convert_value_to_variant(args, request.args)
--> 491 response = self._impl.execute_command(request)
    492 return _convert_variant_to_value(response.result)

File /opt/conda/lib/python3.10/site-packages/ansys/fluent/core/services/datamodel_se.py:221, in DatamodelServiceImpl.execute_command(self, request)
    219 """executeCommand RPC of DataModel service."""
    220 logger.debug(f"Command: {request.command}")
--> 221 return self._stub.executeCommand(request, metadata=self._metadata)

File /opt/conda/lib/python3.10/site-packages/grpc/_interceptor.py:277, in _UnaryUnaryMultiCallable.__call__(self, request, timeout, metadata, credentials, wait_for_ready, compression)
    268 def __call__(
    269     self,
    270     request: Any,
   (...)
    275     compression: Optional[grpc.Compression] = None,
    276 ) -> Any:
--> 277     response, ignored_call = self._with_call(
    278         request,
    279         timeout=timeout,
    280         metadata=metadata,
    281         credentials=credentials,
    282         wait_for_ready=wait_for_ready,
    283         compression=compression,
    284     )
    285     return response

File /opt/conda/lib/python3.10/site-packages/grpc/_interceptor.py:329, in _UnaryUnaryMultiCallable._with_call(self, request, timeout, metadata, credentials, wait_for_ready, compression)
    326     except Exception as exception:  # pylint:disable=broad-except
    327         return _FailureOutcome(exception, sys.exc_info()[2])
--> 329 call = self._interceptor.intercept_unary_unary(
    330     continuation, client_call_details, request
    331 )
    332 return call.result(), call

File /opt/conda/lib/python3.10/site-packages/ansys/fluent/core/services/interceptors.py:122, in GrpcErrorInterceptor.intercept_unary_unary(self, continuation, client_call_details, request)
    115 def intercept_unary_unary(
    116     self,
    117     continuation: Any,
    118     client_call_details: grpc.ClientCallDetails,
    119     request: Any,
    120 ) -> Any:
    121     """Intercept unary-unary call for error state checking."""
--> 122     return self._intercept_call(continuation, client_call_details, request)

File /opt/conda/lib/python3.10/site-packages/ansys/fluent/core/services/interceptors.py:112, in GrpcErrorInterceptor._intercept_call(self, continuation, client_call_details, request)
    110     ex = RuntimeError(grpc_ex.details())
    111     ex.__context__ = grpc_ex
--> 112     raise ex from None
    113 return response

RuntimeError: Exception encountered in S_ExecuteTask: File "/home/jovyan/.local/share/ansys_fluent_core/examples/wing.pmdb" not found.

Error occurred during import.

Importing the selected file(s) could not be completed. Check to make sure that the selected file format is supported. In addition, check to make sure the CAD Readers are properly configured for the format using the CAD Configuration Manager utility.

📝 Steps to reproduce
In ansys lab, execute the following code:
import ansys.fluent.core as pyfluent
from ansys.fluent.core import examples

pyfluent.CONTAINER_MOUNT_PATH = pyfluent.EXAMPLES_PATH
wing_spaceclaim_file, wing_intermediary_file = [
    examples.download_file(CAD_file, "pyfluent/external_compressible")
    for CAD_file in ["wing.scdoc", "wing.pmdb"]
]

meshing = pyfluent.launch_fluent(
    precision="double",
    processor_count=4,
    mode="meshing",
    product_version="24.2.0"
)

meshing.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")

geo_import = meshing.workflow.TaskObject["Import Geometry"]
geo_import.Arguments.set_state(
    {
        "FileName": wing_intermediary_file,
    }
)

geo_import.Execute()

The above error will be thrown
💻 Which operating system are you using?
 File path: /.local/share/ansys_fluent_core/examples/wing.scdoc
But it should probably be something like
File already exists. File path: /home/jovyan/.local/share/ansys_fluent_core/examples/wing.scdoc
Or
File already exists. File path: ~/.local/share/ansys_fluent_core/examples/wing.scdoc

Fluent should not be reporting Error: File "/home/jovyan/.local/share/ansys_fluent_core/examples/wing.pmdb" not found, as that should not be the path that Fluent is being provided when running in a container. That path is only valid for the PyFluent process running in the host system, it is not valid for the Fluent process in the guest container. The examples.download_file() method should be returning just e.g. wing.pmdb for the wing_intermediary_file variable, depending on what directory was mounted for the guest Fluent container.

@answillgm I see that you are using ansys-fluent-core==0.20.1, and I believe we've made changes that will affect this and may already be fixed in upcoming versions
@hpohekar

@seanpearsonuk @answillgm @raph-luc
File upload operation needs to be performed explicitly.
Everything is working fine. I have checked with ansys-fluent-core==0.20.1.

-------------------------------------------------------------------

Warning: PMDB file will not be saved as the same is being imported.

Importing one geom object per program-controlled and one zone per body ...
Initializing ANSYS component system ...
running Ansys.Meshing.FieldMesher.exe ...
creating FMComponent instance ...
querying IFieldMesher interface ...
AnsysFieldMesher build date: May 13 2024 15:08:00

argv[0] = /ansys_inc/v242/aisol/CommonFiles/linx64/ansys.meshing.fieldmesher.exe
argv[1] = -B
argv[2] = /ansys_inc/v242/commonfiles/CPython/3_10/linx64/Release/python/../Ansys/TGrid/CADReaders.py
argv[3] = -a
argv[4] = /work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140/options1718178874.633278140.xml
argv[5] = -a
argv[6] = /work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140/options1718178874.633278140.xml
    /ansys_inc/v242/aisol/CommonFiles/linx64/ansys.meshing.fieldmesher.exe started by root on fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct linx64 on Wed Jun 12 07:54:35 2024
    using Python 3.10.12 (main, Mar 26 2024, 02:17:48) [GCC 8.2.0]

    using Ansys.Meshing.FieldMesher build May 13 2024 15:04:53

    running ANSYS TGrid CADToTGridConverter ...
    setting up parameters ...
    setting up parameters done.
    running conversion ...
    converting 1 file(s) from Workbench to FLTG using output path '/work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140/out1718178874.633278140.tgf'
    converting file 'wing.pmdb' (1 of 1) from Workbench to FLTG using output path '/work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140'
    importing data ...
    importing meshing model from PartMgr from file '/work/wing.pmdb' ...
    setting enclosure and symmetry processing to False
    setting transfer named selections to True
    setting named selection prefixes to ''
    setting mixed import resolution type to 'SolidAndSurface'
    setting target application to 'FluentMeshing'
    initializing part manager from file ...
    processing assembly 'V:\v20.2\ajamwal\tutorial\onera_wing_tui_fltg\std\wing.scdoc' with ID 1 and reference key '<?xml version="1.0" encoding="utf-16"?>
    <IdTable xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Table>
        <Entry>
          <Text><SnippetV1 sctype="SpaceClaim.BasicMoniker`1[[SpaceClaim.IEvaluation, Core]], Core" refId="96eb1453-b93e-47b3-ac40-b839719e0f23:2" /></Text>
          <ExplodedBodyText><SnippetV1 sctype="SpaceClaim.BasicMoniker`1[[SpaceClaim.IEvaluation, Core]], Core" refId="3b3e1be1-19e3-426a-b9be-57a5d102de0c:359" /></ExplodedBodyText>
          <Id>10000</Id>
          <IsExploded>true</IsExploded>
        </Entry>
        <Entry>
          <Text><SnippetV1 sctype="SpaceClaim.BasicMoniker`1[[SpaceClaim.IEvaluation, Core]], Core" refId="96eb1453-b93e-47b3-ac40-b839719e0f23:2" /></Text>
          <ExplodedBodyText><SnippetV1 sctype="SpaceClaim.BasicMoniker`1[[SpaceClaim.IEvaluation, Core]], Core" refId="6913b575-3023-4a96-8ca3-797ab1ec6f00:31674" /></ExplodedBodyText>
          <Id>10001</Id>
          <IsExploded>true</IsExploded>
        </Entry>
      </Table>
    </IdTable>'
    length unit = [m]
    processing part 'wing' with ID 3
    processing part 'wing' with ID 5
    processing named selection 'fluid_symmetry'
    processing named selection 'pressure_farfield'
    processing named selection 'wing_bottom'
    processing named selection 'wing_top'
    processing named selection 'wing_edge'
    processing data ...
    removing named collections of entities ...
    removing named collections of entities stopped, no named collections selected.
    analyzing feature edges ...
    detecting feature edges, feature angle = 40 [deg] ...
        Data information
            Meshing model
                Attributes:
                    'LengthUnit': '[mm]'
                Entity summary:
                    Collection: 5
                    Component : 3
                    Body      : 2
                    Shell     : 2
                    Face      : 19
                    Loop      : 20
                    Edge      : 38
                    Vertex    : 24
                    Surface   : 19
                    Curve     : 38
                Tessellation summary:
                    Face facets  : 2691
                    Edge segments: 426
                Bounding box:
                    (-25039.427734375, -9.623148855553154e-08, -25039.421875) x (26144.078125, 25039.427734375, 25039.43223878741)
                Assembly component hierarchy:
                    'V:\v20.2\ajamwal\tutorial\onera_wing_tui_fltg\std\wing.scdoc'
                      'wing'
                      'wing'
                NamedCollections:
                    'fluid_symmetry'
                    'pressure_farfield'
                    'wing_bottom'
                    'wing_top'
                    'wing_edge'

    exporting FLTG data to file '/work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140/out1718178874.633278140.tgf' ...
    writing face-based mesh file '/work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140/out1718178874.633278140.tgf' ...
    ======== Exported Data ========
    Entity summary:
        Object       : 2
        Object region: 7
        Zone         : 16

    running conversion done.
    running ANSYS TGrid CADToTGridConverter done.
    ran ANSYS TGrid CADToTGridConverter in 0.116 [s]
        ======== Command Execution Log Manager ========
        Number of execution logs: 0

Reading "/work/FM_fluent-meshing-242-wtakstja9dz33vr5mblldkscjkxrsdnrul-kqzct_140/out1718178874.633278140.tgf"...

nodes: 1603
edges: 267
faces: 2649
cells: 0
generating pointers...done.
extracting boundary entities...
 1603 boundary nodes.
 2649 boundary faces.
 6 boundary face zones.
done.
analyzing boundary connectivity...done.

---------------- Import of wing, consisting of 2 parts/objects, complete.

@hpohekar Thanks, that makes sense - is this not a documentation issue then? The examples documentation I'm using, and the code in the examples section of the repository doesn't specify calling it to explicitly upload:
geo_import = meshing.workflow.TaskObject["Import Geometry"]
geo_import.Arguments.set_state(
    {
        "FileName": wing_intermediary_file,
    }
)
# No upload is specified here!
geo_import.Execute()

@hpohekar Thanks, that makes sense - is this not a documentation issue then? The examples documentation I'm using, and the code in the examples section of the repository doesn't specify calling it to explicitly upload:
geo_import = meshing.workflow.TaskObject["Import Geometry"]
geo_import.Arguments.set_state(
    {
        "FileName": wing_intermediary_file,
    }
)
# No upload is specified here!
geo_import.Execute()

@answillgm
Please refer this test.
https://github.com/ansys/pyfluent/blob/main/tests/test_file_transfer_service.py#L84
Thank you.

@hpohekar Thanks, should this behavior not be documented on the examples at least? If someone is using ansys lab, and following the examples as written they would run into this pitfall and wouldn't know why

@answillgm Sure. We will discuss this point.


Added template and autoload on plugin activation

Checklist for this pull request

[y] I have read the guidelines for contributing.
[y] I have checked that my code additions did not fail tests.

Description
The plugin now will add the "Ink Template" template to the project the plugin is activated in. It will also create the "__InkRuntime" autoload.
I have done some small tests, I would like to do some more but I haven't used GUT before, I need to familiarise myself with it first. However I have tested that the template is generated and that it works, and I've tested that the autoload is added and removed when the plugin is activated.
For the template, I tried to simplify the "ink_runner.gd" script so the code could act more as something to be built on, This meant removing the choice_container and references. Now the script will run the exported ink file and print it into the console, with the first option being chosen each time. I think this will make it easier for new users to get used to how to use the code before moving onto the new code.
This is actually the first code-based pull request I've done, so I'd appreciate any feedback.
One thing to note, a lot of files as recorded as changed, however I think this is because it converted spaces into tabs due to my editor settings. Let me know if there's a set way to handle this in future.

Fantastic, thanks for creating the PR!

The plugin now will add the "Ink Template" template to the project the plugin is activated in. It will also create the "__InkRuntime" autoload.

We briefly touched the topic on Discord, but we didn't talk about the purpose of autoloading __InkRuntime (I'm not opposed to it, I'm just trying to wrap my head around it). Is it a first step to get runtime support in the editor? Or do you have something else in mind?

However I have tested that the template is generated and that it works, and I've tested that the autoload is added and removed when the plugin is activated.

I'm not too sure how to go about it, I don't think GUT can test editor stuff. A couple of tests can probably be created to check that the template works, though. This can be done later in a separate PR.

For the template, I tried to simplify the "ink_runner.gd" script so the code could act more as something to be built on, This meant removing the choice_container and references. Now the script will run the exported ink file and print it into the console, with the first option being chosen each time. I think this will make it easier for new users to get used to how to use the code before moving onto the new code.

Good call 👍

This is actually the first code-based pull request I've done, so I'd appreciate any feedback.

No worries! I glanced at the PR and I'm going to comment on a few things, but I'll give it a full review in the coming week. I might be a bit nitpicky, so bear with me!

One thing to note, a lot of files as recorded as changed, however I think this is because it converted spaces into tabs due to my editor settings. Let me know if there's a set way to handle this in future.

I've been pondering converting the codebase to tabs since that's what GDScript tend to use. I can't remember what I used spaces in the first place, but it will have to be reverted as part of this PR to keep the codebase as consistent as possible. Then we'll do a sweep one day to convert everything.
Anyway great stuff.

Fantastic, thanks for creating the PR!

The plugin now will add the "Ink Template" template to the project the plugin is activated in. It will also create the "__InkRuntime" autoload.

We briefly touched the topic on Discord, but we didn't talk about the purpose of autoloading __InkRuntime (I'm not opposed to it, I'm just trying to wrap my head around it). Is it a first step to get runtime support in the editor? Or do you have something else in mind?

However I have tested that the template is generated and that it works, and I've tested that the autoload is added and removed when the plugin is activated.

I'm not too sure how to go about it, I don't think GUT can test editor stuff. A couple of tests can probably be created to check that the template works, though. This can be done later in a separate PR.

For the template, I tried to simplify the "ink_runner.gd" script so the code could act more as something to be built on, This meant removing the choice_container and references. Now the script will run the exported ink file and print it into the console, with the first option being chosen each time. I think this will make it easier for new users to get used to how to use the code before moving onto the new code.

Good call 👍

This is actually the first code-based pull request I've done, so I'd appreciate any feedback.

No worries! I glanced at the PR and I'm going to comment on a few things, but I'll give it a full review in the coming week. I might be a bit nitpicky, so bear with me!

One thing to note, a lot of files as recorded as changed, however I think this is because it converted spaces into tabs due to my editor settings. Let me know if there's a set way to handle this in future.

I've been pondering converting the codebase to tabs since that's what GDScript tend to use. I can't remember what I used spaces in the first place, but it will have to be reverted as part of this PR to keep the codebase as consistent as possible. Then we'll do a sweep one day to convert everything.
Anyway great stuff.

Thanks for the feedback. I'll have a look through and update the code. I'll respond to code comments, but here I'll cover one of the points about the Autoload.

We briefly touched the topic on Discord, but we didn't talk about the purpose of autoloading __InkRuntime (I'm not opposed to it, I'm just trying to wrap my head around it). Is it a first step to get runtime support in the editor? Or do you have something else in mind?

So this method does NOT add __InkRuntime to the editor, so it's not about runtime support. The code I've added has made it so that just by activating the plugin, the __InkRuntime singleton is added with Autoload without the user having to do it themselves, like is suggested here. This means the user doesn't need to use extra code or add the Singleton with Autoload themselves, making a better experience.

Thanks for the feedback. I'll have a look through and update the code. I'll respond to code comments, but here I'll cover one of the points about the Autoload.

We briefly touched the topic on Discord, but we didn't talk about the purpose of autoloading __InkRuntime (I'm not opposed to it, I'm just trying to wrap my head around it). Is it a first step to get runtime support in the editor? Or do you have something else in mind?

So this method does NOT add __InkRuntime to the editor, so it's not about runtime support. The code I've added has made it so that just by activating the plugin, the __InkRuntime singleton is added with Autoload without the user having to do it themselves, like is suggested here. This means the user doesn't need to use extra code or add the Singleton with Autoload themselves, making a better experience.

@greencloversguy do you want me to continue the review? I'm asking because the PR is a draft now, but I'm requested to review. Let me know!

@greencloversguy do you want me to continue the review? I'm asking because the PR is a draft now, but I'm requested to review. Let me know!

@greencloversguy FYI I've changed the target branch, so you won't get tons of conflicts. I updated GUT and turned spaces into tabs (great suggestion by the way) in the main branch. Feel free to change the target branch back to main and fix those conflicts if you want to, otherwise I'll make the final merge after this PR is approved.

@greencloversguy FYI I've changed the target branch, so you won't get tons of conflicts. I updated GUT and turned spaces into tabs (great suggestion by the way) in the main branch. Feel free to change the target branch back to main and fix those conflicts if you want to, otherwise I'll make the final merge after this PR is approved.

Heya. Again, I need to get some time to get my head around some of the Github workflow and terms. I've set it as a draft because I wanted to make sure some of the changes, such as adding in the new template, were OK first, as I added another commit.

Hey @greencloversguy! Are you still working on this, do you need me to do anything? 🙂

Hello @ephread, there are still some things I want to add to it, but I think that this version is ready to be merged at the moment. Sorry for the delay, but I'm sure you understand!

Wow, didn't see this PR go from draft to ready for review eight months ago. I'm merging this and will clean up the conflicts in a separate PR. Thanks for your work!


Travis-ci cache

https://docs.travis-ci.com/user/caching/
https://github.com/nickstenning/travis-pip-cache
https://gist.github.com/themperek/c323fd5eb185029de834/

Eliminate the manual installation of ParmEd. It should come along with AmberTools.
Consider putting cache: pip in the .travis.yaml file.

Mostly working, although travis still installs python 3.6 if we request that in the matrix, leading to a two minute delay on the python 3.6 build compared to python 2.7. Maybe we can find a way around this, since we are using miniconda to setup the python environments.


Master

resolves #

Description

Checklist

[ ] I have signed the CLA
[ ] I have run this code in development and it appears to resolve the stated issue
[ ] This PR includes tests, or tests are not required/relevant for this PR
[ ] I have updated the CHANGELOG.md and added information about my change to the "dbt next" section.

Hi @Caside! We use develop for our default branch and not master. If you are trying to get some changes up for review, please try switching your base branch to develop

Going to close this. Feel free to open a new PR, if you're looking to contribute code that resolves a specific issue.


Adding chemistry name helpers

These helper methods allow a user to enter a common atomic/molecular species name or an isotopologue name, and convert it to other naming conventions or find masses for atoms and molecules. These methods are useful for accepting a wide range of user input when specifying species for opacities and chemistry calculations.

I'm not sure what's up with your docs build in that screenshot. The remotely-built docs work fine (see build logs here).


fix: App exit on back pressed

fixes #626
GIF for the change

@nikit19  pls review

Updated pls review

@iamareebjamal
As the Fragment lifecycle do not have onBackPressed(). So According to me alternative method to override onBackPressed() in Android 3.0 fragments can be done by creating an interface class OnBackPressedListener and Create class which implements skills of OnBackPressedListener and creating a listener and a method to set listener. But the current changes are also preforming same job. So I goes with it.

Fragments don't have onBackPressed, their container activity does. Find why it is not working

@nikit19 pls review

@iamareebjamal  The problem is with the stack generated. Currently the onBackPressed method is loading the event fragment  two times one with loadfragment and then with checkandLoad method. So I had cleared the stack generated everytime the user press the back button and located the user to Event Fragment which is required . Now the user can easily exit the as there is only 1 fragment in the stack.

@iamareebjamal  I think the issue is solved pls review

This is still a workaround. I will see what can be done

Old and conflicting with the current logic


Android workload for Linux

So, there isn't an Android workload for Linux?
I understand that it may be difficult to bring iOS support to Linux, but what prevents you from bringing an Android workload?
Is that in the plans? Should I wait for the next releases?
Thanks in advance.

We don't have Linux packages yet for Android. I'm not sure when those will be available.
You could try it right now if you built xamarin-android from source:
https://github.com/xamarin/xamarin-android/blob/master/Documentation/building/unix/instructions.md#creating-a-local-net-6-workload
One our engineers uses Linux primarily, so they've always kept our Linux support working.

@jonathanpeppers any news on this topic? are mobile workloads expected to support Linux for the final .NET 6 release?

I don't think there are plans to have official support for Android on Linux in .NET 6. This would be the Microsoft.Android.Sdk.Linux package we aren't pushing anywhere at the moment.
Perhaps we could put this on a nightly feed so it could be used, however?
The idea being you could add this to a NuGet.config on Linux:
 <add key="xamarin" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />

Then do dotnet workload install microsoft-android-sdk-full.
We'll keep this in mind, as it might be useful.

The nightly builds would be very appreciated by the community, I guess.

that's rather unexpected tbh there is nothing official rn. I wouldn't expect this to be related to no linux support in maui, unless it isn't.

Any news on nightlies? I would love to start migrating my software from a mono+.net framework 4.x combo to .net6.


systray not functional within snap sandbox

Checklist

[X] I have searched the issue tracker for open issues that relate to the same problem, before opening a new one.
[X] This issue only relates to a single bug. I will open new issues for any other problems.

Describe the bug
I have a Go application that uses systray to implement a tray menu, which works as expected on GNOME and KDE.  When packaged up as a snap, however, the snap sandbox prevents the menu to function properly.  I'm wondering if this is something others have noticed or potentially found a solution for?
The problem occurs on GNOME, but does not on KDE, it can be reproduced by running the Fyne systray example.
How to reproduce

Start with an Ubuntu 22.04 environment
Set up snapcraft: https://snapcraft.io/docs/snapcraft-quickstart
Clone this repo: https://github.com/peterzen/systray-example-snap
Build the snap:

cd systray-example-snap
snapcraft --verbose
...
Created snap package example_0.1_amd64.snap

Install the snap in devmode:

sudo snap install --devmode --dangerous example_0.1_amd64.snap

Run the app: example
Observe the systray menu has been created and it's functional (menu items work as expected)
Remove the snap:

sudo snap remove example

Install the snap without --devmode:

sudo snap install  --dangerous example_0.1_amd64.snap

Run app: example
Observe the systray icon being visible, but the menu does not respond to clicks.
See AppArmor DENIED messages in the log:

journalctl |grep dbus

(further log information can be obtained using the snappy-debug tool.)
12. Transfer the .snap file to a KDE system, install it without --devmode.  Run the app, observe the systray menu being fully functional.
Log messages
= AppArmor =
Time: Nov  5 14:57:02
Log: apparmor="DENIED" operation="capable" profile="/snap/snapd/20290/usr/lib/snapd/snap-confine" pid=26423 comm="snap-confine" capability=12  capname="net_admin"
Capability: net_admin
Suggestions:
* adjust program to not require 'CAP_NET_ADMIN' (see 'man 7 capabilities')
* add one of 'bluetooth-control, firewall-control, netlink-audit, netlink-connector, network-control, qualcomm-ipc-router' to 'plugs'
* do nothing if using systemd utility (eg, timedatectl): https://forum.snapcraft.io/t/managing-time-date-and-timezone-in-ubuntu-core/408/44
* do nothing (https://launchpad.net/bugs/1465724)

= AppArmor =
Time: Nov  5 14:57:02
Log: apparmor="DENIED" operation="capable" profile="/snap/snapd/20290/usr/lib/snapd/snap-confine" pid=26423 comm="snap-confine" capability=38  capname="perfmon"
Capability: perfmon
Suggestions:
* adjust program to not require 'CAP_PERFMON' (see 'man 7 capabilities')
* do nothing if program otherwise works properly

= AppArmor =
Time: Nov  5 14:57:02
Log: apparmor="DENIED" operation="dbus_method_call"  bus="session" path="/StatusNotifierMenu" interface="org.freedesktop.DBus.Properties" member="GetAll" name=":1.29" mask="receive" pid=26423 label="snap.example.example" peer_pid=1317 peer_label="unconfined"
DBus access

= AppArmor =
Time: Nov  5 14:57:02
Log: apparmor="DENIED" operation="dbus_method_call"  bus="session" path="/StatusNotifierMenu" interface="com.canonical.dbusmenu" member="AboutToShow" name=":1.29" mask="receive" pid=26423 label="snap.example.example" peer_pid=1317 peer_label="unconfined"
DBus access
Suggestion:
* try adding 'unity7' to 'plugs'

= AppArmor =
Time: Nov  5 14:57:02
Log: apparmor="DENIED" operation="dbus_method_call"  bus="session" path="/StatusNotifierMenu" interface="com.canonical.dbusmenu" member="GetLayout" name=":1.29" mask="receive" pid=26423 label="snap.example.example" peer_pid=1317 peer_label="unconfined"
DBus access
Suggestion:
* try adding 'unity7' to 'plugs'

Example code
https://github.com/peterzen/systray-example-snap
Fyne version
fyne.io/systray v1.10.0
Go compiler version
1.21.3
Operating system and version
Ubuntu Linux 22.04, 20.04
Additional Information
From the logs it would appear that the Fyne systray lib tries to talk to the system/session dbus, but some of the AppArmor rules created by the sandbox do not allow it.  (When the snap is installed with --devmode, the AppArmor rules do not apply, hence the app working correctly in that case.)
Other Snap applications with systray integration work correctly on both KDE and GNOME, that indicates that the problem is related to the way Fyne systray uses the dbus.  See https://snapcraft.io/signal-desktop as an example.

See AppArmor DENIED messages in the log:

Can you please include the journalctl error messages here for people not running on a snap capable system?
@Jacalz does this relate to flatpack rules / fixes?

@Jacalz does this relate to flatpack rules / fixes?

I don't think so. To be fair, I have no idea about how Snap works and if they expose the XDG Desktop Portal API (it's not specific to Flatpak in any way; it even works outside of it on my system so it's possible they do). But then again, I don't think they have any systray API available through the portal API.
I honestly doubt that this is a bug in our code. The most likely culprit that I see is that your sandbox permissions isn't letting the DBus talk name through. You probably need to update your snap manifest (or whatever it's call there) to do something similar to what we do for notifications in flatpak_demo:
https://github.com/fyne-io/flatpak_demo/blob/4d7a57a2fbaea217cede7a4ffabe4e7ec9ab70af/io.fyne.flatpak_demo.yml#L18
However, I do realise that I have never tried getting systray to work in Flatpak so I ought to test that sometime.

It would probably be a good idea to look at another Snap application that has a working systray and see how they have their permissions set up.

It would probably be a good idea to look at another Snap application that has a working systray and see how they have their permissions set up.

Is there something special about systray's approach vs other implementations (due to its cross platform nature perhaps)?  I'll admit I don't know much about DBus and the way it's integrated into the GNOME desktop environment but from extensive testing it would appear that its DBus use is somewhat different than other apps'.

See AppArmor DENIED messages in the log:

Can you please include the journalctl error messages here for people not running on a snap capable system?

The log messages above are gathered from journalctl.

I honestly doubt that this is a bug in our code. The most likely culprit that I see is that your sandbox permissions isn't letting the DBus talk name through.

I don't think it's a bug either - it's indeed the apparmor permissions put in place by snapd that prevent it from talking to DBus on GNOME (there's no problem on KDE).
You probably need to update your snap manifest (or whatever it's call there) to do something similar to what we do for notifications in flatpak_demo:

https://github.com/fyne-io/flatpak_demo/blob/4d7a57a2fbaea217cede7a4ffabe4e7ec9ab70af/io.fyne.flatpak_demo.yml#L18

The officially supported way in snap is via its interfaces (desktop-legacy and desktop), which essentially add apparmor rules that enable specified DBus connectivity.
This is a similar problem someone had a while back, it's not related to this issue but it sheds a light on how he went about debugging it:
https://forum.snapcraft.io/t/trouble-to-get-electron-apps-systray-icon-working-as-a-snap/26623

@Jacalz does this relate to flatpack rules / fixes?

I don't think so. To be fair, I have no idea about how Snap works and if they expose the XDG Desktop Portal API (it's not specific to Flatpak in any way; it even works outside of it on my system so it's possible they do). But then again, I don't think they have any systray API available through the portal API.
I honestly doubt that this is a bug in our code. The most likely culprit that I see is that your sandbox permissions isn't letting the DBus talk name through. You probably need to update your snap manifest (or whatever it's call there) to do something similar to what we do for notifications in flatpak_demo:

@jslarraz kindly tracked down this problem in the Snapcraft forum and provided a potential fix:
https://forum.snapcraft.io/t/dbus-related-apparmor-denials/37422/1
Apparently the issue is related to the Dbus path Systray uses.


Study Date Formatting

The study Date column is in the format YYYY/MM/DD HH:MM and should be changed to DD/MM/YYYY

Closed by #122


Add flag to store config in secret to createctconfig

Instead of a configmap
This would work well with https://github.com/sigstore/helm-charts/pull/142#pullrequestreview-947739496, which expects the config to exist in a Secret.

I created this 'reconciler' for secrets, so doing this should now be very straightforward.
https://github.com/sigstore/scaffolding/blob/main/pkg/secret/secret.go#L34
And to use it:
https://github.com/sigstore/scaffolding/blob/main/cmd/rekor/createsecret/main.go#L72
I'll take a look at doing this next week.

@priyawadhwa I know the original issue request was for storing this in the secret instead of configmap. But the more I think about this, I think we should move away from storing the CTLog config in the configmap as an option all together. WDYT?

SGTM!

We now only use the secret, so the flag has been removed.


ftde0 when is the next update for yt2009

ftde0 I want to know

today! https://github.com/ftde0/yt2009/commit/01e6edac8d11424c63faf0e9bd03c173a14d48f9


Implement serialize/deserialize for polygons

Want to be able to write and read polygons from file. I think for the moment JSON support will be easiest, though I expect eventually will want to support mulitple file formats. Need to play around with serde_json and figure out the easiest way to go from the polygon representation I have to JSON.

Added support for Vertex and VertexMap, in implementing these I realized there's not a great way I don't think to do it directly for polygons, because they currently have no ownership of the vertices they hold. That was a design decision previously, since I was thinking I didn't want polygons to have ownership and to think of them more as computational units like I do triangles, but that may have been misguided. It was also motivated by wanting to have an easy way to retrieve the vertices in tests to do asserts while being something separate from the polygon implementation. I may be rethinking all of that though, and will consider addressing in another issue.


Fix and deprecate get_token_permission

As reported by @CISC in https://github.com/gradio-app/gradio/issues/9820#issuecomment-2432961165, using get_token_permission with an OAuth token is broken:
...
  File "/home/user/app/app.py", line 985, in template_data_from_model_files
    if info and oauth_token and hfapi.get_token_permission(oauth_token.token) == "write":
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/huggingface_hub/hf_api.py", line 1691, in get_token_permission
    return self.whoami(token=token)["auth"]["accessToken"]["role"]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'accessToken'

This is because the whoami response for an OAuth token doesn't contain the detailed permission for that token.
This PR fixes get_token_permission to not raise an error when a OAuth token is passed but return None instead. This is a half-satisfying fix but at least it won't break things in the wild (same output as if no token is passed). What I also did is to fully deprecate this method as it doesn't make any sense to have it anymore. Deprecation cycle runs until v1.0.0. Tokens are not just "read" or "write". OAuth and fine-grained tokens have much more complex permissions depending on the user choices.

In a follow-up PR, I'll make sure to remove all internal use of get_token_permission. This doesn't have to be done in the same PR.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

Aha, that explains it, thank you for picking this up! :)


Image Separater

Script Title - Image Separater
Brief - The script will allow a user to separate different type of images from a directory based on their feature vectors.
Instructions

Create a new folder for your script and file/folder name should be appropriate.
Create a README.md in your folder for program Instructions
add requirements.txt if needed

Programming Language

[x] Python

Happy Coding

Please assign this issue to me.

Can you explain a bit more, Like I have dog and cat images in folder it will separate out both?

Yes, it'll separate out both dog and cat images if we choose cluster parameter as 2. similarly it can also separate humans, animals, tools, etc. But we have define in how many different categories we have to separate manually.


Multiple blacklist settings not working

Hi,
Getting a lot of "unable to verify data submissions" from bots, so thought I'd blacklist the error.
But it doesn't seem to be working, code below.
Not sure if I've got it set up wrong, or if it's a bug!
Tim
'blacklist' => [
	[
		'label' => '404 errors etc',
			'class' => function($exception) {
				/**
				* @var \yii\web\NotFoundHttpException $exception
				*/
				if ($exception instanceof \yii\web\NotFoundHttpException && $exception->statusCode === 404) {
					return false;
				}
			return true;
		},
	],
	[
		'label' => 'Unable to verify data submission',
			'class' => function($exception) {
				/**
				* @var \yii\web\BadRequestHttpException $exception
				*/
				if ($exception instanceof yii\web\BadRequestHttpException && $exception->getMessage() == 'Unable to verify your data submission.') {
					return false;
				}
			return true;
		},
	],
],

@sjelfull - good to know this is a bug and not just user-error!

Would be good to get this sorted as it is something we would like to support

I've tested this an this seems to work just fine! One thing to note if you might have an issue with:
$exception instanceof yii\web\BadRequestHttpException

Which should be
$exception instanceof \yii\web\BadRequestHttpException

Otherwise, that exact code works. For clarity, here is my full config file.
<?php

use yii\web\BadRequestHttpException;
use yii\web\NotFoundHttpException;

return [
    'blacklist' => [
        [
            'label' => '404 errors etc',
            'class' => function($exception) {
                if ($exception instanceof NotFoundHttpException && $exception->statusCode === 404) {
                    return false;
                }

                return true;
            },
        ],
        [
            'label' => 'Unable to verify data submission',
            'class' => function($exception) {
                if ($exception instanceof BadRequestHttpException && $exception->getMessage() == 'Unable to verify your data submission.') {
                    return false;
                }

                return true;
            },
        ],
    ],
];


What is up with this "Rest" type?

What's with this REST argument type not matching the rest and instead just matching to literally everything in a message... Wouldn't Rest match with the "REST" of the arguments that haven't already been matched as apposed to doing something like what "content" already does?

Rest should only return the rest of the arguments. Can you send your code?

Sure, This is my Argument Code
  *args(message: Message) {     let args = { member: null, content: null };     args.member = yield {       match: 'phrase',       type: 'member',       default: message.member,       unordered: true,       prompt: {         optional: true,       },     };     args.content = yield {       match: 'rest',       type: (_: any, phrase: string) => {         return phrase.replace(MessageMentions.USERS_PATTERN, '').trim();       },       default: false,       prompt: {         optional: true,       },     };     return args;   }
I Couldn't find any one else's code that works and the documentation doesn't seem to help from what ive copied.

You seem to be using argument generators. Do you intend to do that? There is much simpler ways

Does using Argument Generators make things behave differently or something ?

It shouldn’t, but to be honest I’m not too sure how to use them other than sub commands. Why don’t you use the arguments normally?

Consistency, Im a idiot when it comes to keeping things kinda the same so when i use argument generator in one file i wanna use them in all, but ive stopped doing that as of yesterday because i cannot be bothered

      args: [
        {
          id: 'member',
          type: 'member',
          unordered: true,
          default: (message: Message) => message.member,
          prompt: {
            optional: true,
            start: 'Please Mention a Member',
            retry: 'Please Mention a valid Member',
          },
        },
        {
          id: 'colour',
          type: [...Colour_Roles.map((colour) => colour.colour)],
          default: false,
          prompt: {
            optional: true,
            start: 'Please provide a Colour',
            retry: 'Please provide a valid Colour',
          },
        },
      ],

Currently, I will provide a member to this and it will think im saying its a colour


Executable doesn't exist at /Users/runner/Library/Caches/ms-playwright/chromium-1015/chrome-mac/Chromium.app/Contents/MacOS/Chromium

https://dev.azure.com/monacotools/Monaco/_build/results?buildId=185457&view=logs&j=a5d99aad-4929-5289-bf4a-26b78032353d&t=dafdf52c-6fc3-5431-f55d-37c3624b5ac3&l=13
$ node test/unit/browser/index.js --sequential --build --browser chromium --browser webkit --tfs 'Browser Unit Tests'
browserType.launch: Executable doesn't exist at /Users/runner/Library/Caches/ms-playwright/chromium-1015/chrome-mac/Chromium.app/Contents/MacOS/Chromium
╔═════════════════════════════════════════════════════════════════════════╗
║ Looks like Playwright Test or Playwright was just installed or updated. ║
║ Please run the following command to download new browsers:              ║
║                                                                         ║
║     npx playwright install                                              ║
║                                                                         ║
║ <3 Playwright Team                                                      ║
╚═════════════════════════════════════════════════════════════════════════╝
    at runTestsInBrowser (/Users/runner/work/1/s/test/unit/browser/index.js:129:48)
    at /Users/runner/work/1/s/test/unit/browser/index.js:254:25 {
  name: 'Error'
}
error Command failed with exit code 1.

This is unrelated to the agent image or the overall build infrastructure.
Can you please reach out to your Playwright contacts and see if they can assist. Thanks!

https://github.com/microsoft/playwright/issues/17394

@lszomoru lets revert https://github.com/microsoft/vscode/pull/160490 because I think the issues only started then. I also noticed you added a timeout for the task, not sure why. I noticed that we already have retry logic in the code anyway:
https://github.com/microsoft/vscode/blob/dbdefe15134039b8dd6cb31453d2bce41d3b2920/build/azure-pipelines/common/installPlaywright.ts#L12

@bpasero, sure, please feel free to revert. I added timeout for the task as I have seen instances in which the task hangs.

All the runs from today are green, so I think we can close this one 🚀


[Bug] [Module Name] Bug title

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Task type: SQL
Data source: select the postgresql library I have added
SQL statement: select * from xxx
Run the workflow, and then see the following print in the worker.log:
What you expected to happen
I don't know.
"SELECT" works on MySQL, but not works on postgresql.
How to reproduce
Let it work..
Anything else
No response
Version
1.3.9
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Please complete the title of this question.

Hi @kindragos , your picture cannot be displayed normally.

Hi @kindragos , your picture cannot be displayed normally.

There is something wrong with the uploading, I type some KEY info.

It seems network connect error, but no sql error.

hello？


NullPointer spamming logs when looking at GalacticraftBlock using HWYLA Mod

Issue Description:
What happens:
NullPointer exception when looking at a galaticraft wire using HeresWhatYourLookingAt Mod
Only happend when EnderIO is installed, when its removed problem doesnt happen
Look at the block long enough and you time out
(Note, have cross posted on the other mods support threads as well, as no idea which mod is causing it)
Steps to reproduce:

Install Galatricraft mods, EnderIO mods, and HWYLA Mod
Place aluminium wire from GC
Look at block to bring up HWYLA GUI and errors appear in logs

Affected Versions (Do not use "latest"):

EnderIO: 1.12.2-5.2.66
EnderCore: 1.12.2-0.5.76
Minecraft: 1.12.2
Forge:  <IP_ADDRESS>54
SpongeForge? no
Optifine? no
Single Player and/or Server? server

Your most recent log file where the issue was present:
[11:49:12] [Server thread/FATAL] [minecraft/MinecraftServer]: Error executing task java.util.concurrent.ExecutionException: java.lang.NullPointerException         at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_251]         at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_251]         at net.minecraft.util.Util.func_181617_a(SourceFile:47) [h.class:?]         at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:723) [MinecraftServer.class:?]         at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) [nz.class:?]         at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]         at java.lang.Thread.run(Unknown Source) [?:1.8.0_251] Caused by: java.lang.NullPointerException         at micdoodle8.mods.galacticraft.api.vector.BlockVec3.getTileEntityOnSide(BlockVec3.java:439) ~[BlockVec3.class:?]         at micdoodle8.mods.galacticraft.core.energy.tile.TileBaseUniversalConductor.getCapability(TileBaseUniversalConductor.java:457) ~[TileBaseUniversalConductor.class:?]         at mcp.mobius.waila.addons.capability.HUDHandlerEnergy.getNBTData(HUDHandlerEnergy.java:46) ~[HUDHandlerEnergy.class:?]         at mcp.mobius.waila.network.MessageRequestTile$Handler.lambda$onMessage$0(MessageRequestTile.java:93) ~[MessageRequestTile$Handler.class:?]         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_251]         at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_251]         at net.minecraft.util.Util.func_181617_a(SourceFile:46) ~[h.class:?]         ... 5 more
Full Log: https://pastebin.com/pBb6JyuF

As far as I can tell from the log, this does not relate to enderio in any way.


haskellPackages.shellFor creates invalid NIX_GHC_DOCDIR

Describe the bug
haskellPackages.shellFor function creates environment with NIX_GHC_DOCDIR
variable set to non-existent path.
Steps To Reproduce
$ cat bad.nix
let
  pkgs = import ./. {};
in pkgs.haskellPackages.shellFor {
  packages = p: [ p.lens ];
}
$ nix-shell bad.nix --run 'ls -al $NIX_GHC_DOCDIR'
ls: cannot access '/nix/store/5hjpspgqm47hqwdjrryrqglp0zfz0b0a-ghc-8.10.7-with-packages/share/doc/ghc/html': No such file or directory

Expected behavior
$NIX_GHC_DOCDIR points to directory with html documentation of all
dependencies.
Notify maintainers
@peti
@cdepillabout
@expipiplus1
@maralorn
@sternenseemann
@cstrahan
Metadata
$ git show
commit 290ab1ac45f92825613c5f24cc4896dd6524b748
Merge: d77cd852ab1 e06f742bebd
Author: Maciej Krüger<EMAIL_ADDRESS>Date:   Sun Dec 12 08:56:08 2021 +0100

    Merge pull request #150379 from r-ryantm/auto-update/xviewer

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.7`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.5pre20211007_844dd90`
 - channels(kaction): `"nixpkgs-21.11pre332093.7fad01d9d5a"`
 - nixpkgs: `/home/kaction/.nix-defexpr/channels/nixpkgs`

That is a very good observation.
Of course the burning question is: Has this ever worked or what changed?
In the wrapper code we have docDir pointing at $out/share/doc/ghc/html. Which apparently doesn‘t exist.
More concerning the only directory called html that I can find in the wrapper result is at $out/lib/ghc-8.10.7/html and it appears to only contain js/css assets but no actual documentation. There is not a single html file in the wrapper result.
Instead the docs dir is apparently part of the -doc output of the original ghc build. That dir does not seem to be included by the symlinkJoin that we are using for the wrapper.
It’s a typical "how can this ever have worked" situation. Can someone shed a bit of light on this?
@KAction May I ask how you discovered this? Is there a concrete use case which was broken by this?

@maralorn
Well, I started new Haskell project with template from here: https://github.com/utdemir/hs-nix-template, and it happened to generate default.nix which called shellFor. I did nix-env and it provided with cool environment -- hoogle, repl and other nice things. I wanted to read documentation of my dependencies, so I looked around with env|grep -E 'GHC|NIX' and discovered variable in question.
Actually, if you provide withHoogle = true, you will get documentation, but in another directory.

Yeah, to be honest, I wouldn‘t actually how to typically access the config without using hoogle as an entry point. And that usecase works. So I am curious for which situation we need the variable.

As the most straightforward solution we may set this variable only if withHoogle is set, and change its value. Not sure that it is safe, since its value is inspected by GHC itself.

NIX_GHC_DOCDIR is relatively inconsequential in the grand scheme of things, because it is only used by ghc-paths, not GHC itself. In principle this would probably point to the current GHC's documentation directory where in a Nix sense only the documentation of base etc. would be located, downstream packages likely expect all documentation there.
We could create such a directory using buildEnv, although I'm a bit worried it could be slow. ghcWithHoogle doesn't have such a directory, instead the hoogle db knows where the different packages' documentation is located (which is much neater).


nuxt::render Rendering url /json

Is it normal these two lines are constantly rendering?
nuxt:render Rendering url /json/version
nuxt:render Rendering url /json

I see it's normal, in a new and clean Nuxt.js project in production mode it shows the log too


doc: update README.md

NOTE: Please read the Contributing.md guidelines before submitting your patch:
https://github.com/apache/incubator-apisix/blob/master/Contributing.md#how-to-add-a-new-feature-or-change-an-existing-one
Summary
SUMMARY_HERE
Full changelog

[Implement ...]
[Add related tests]
...

Issues resolved
Fix #1761

I will make a try later according to the doc.


Complete snapshot restore, mvp for 2.4

Description
This PR resolves bugs/requested UX changes for snapshot restore including but not limited to:

customize success/error toasts with buttons/modals/redirection on click
add redirect to Restore activities in progress panel upon clicking button in success toast
add error modal to view full error
remove total size from Indices List until snapshot status api can be utilized
resolve issues with auto refresh until restore finishes
remove commented code
remove console.logs
miscellaneous styling/wording changes
add warning banner/disable restore until 'restore partial snapshot' is checked, when failed indices are in snapshot
Pre-populate various options text fields with basic working content
allow navigation to Restore activities panel without selecting a snapshot
In later release will be able to display multiple ongoing and past restore activities

Issues Resolved
#243
Check List

[ x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

<img width="349" alt="Screen Shot 2022-10-21 at 4 48 23 PM" src="https://user-images.githubusercontent.com/11152

6961/198326779-

4fdf552c-77

f1-48c5-a211-859c9e439440.png">

Codecov Report

Merging #315 (b61ccec) into main (fa09afb) will decrease coverage by 0.46%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #315      +/-   ##
==========================================
- Coverage   50.41%   49.94%   -0.47%
==========================================
  Files         191      192       +1
  Lines        6064     6137      +73
  Branches      942      960      +18
==========================================
+ Hits         3057     3065       +8
- Misses       2785     2850      +65
  Partials      222      222

Impacted Files
Coverage Δ

.../RestoreActivitiesPanel/RestoreActivitiesPanel.tsx
16.00% <0.00%> (-5.54%)
:arrow_down:

...ashboards-plugin/public/pages/Snapshots/helper.tsx
26.31% <0.00%> (-2.26%)
:arrow_down:

...lugin/public/services/SnapshotManagementService.ts
0.00% <0.00%> (ø)

...pages/Snapshots/components/IndexList/IndexList.tsx
0.00% <0.00%> (ø)

...s/Snapshots/components/RenameInput/RenameInput.tsx
100.00% <0.00%> (ø)

...AdvancedOptions/SnapshotRestoreAdvancedOptions.tsx
0.00% <0.00%> (ø)

...ges/Snapshots/components/ErrorModal/ErrorModal.tsx
0.00% <0.00%> (ø)

...ts/RestoreSnapshotFlyout/RestoreSnapshotFlyout.tsx
15.49% <0.00%> (+0.49%)
:arrow_up:

...pages/Snapshots/containers/Snapshots/Snapshots.tsx
9.75% <0.00%> (+2.66%)
:arrow_up:

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


elm 0.19 compatibility

I am new to elm, but shouldn't the new command be elm make instead of elm-make?
https://github.com/abingham/jupyter-elm-kernel/blob/master/elm_kernel/kernel.py#L78-L80

Probably. There has not been any work to update this to 0.19. Only in the past few days, in fact, have I had a chance to do any Elm programming for quite some time. I likely won't have any real time to devote to this kernel, but I should be able to process PRs if you're interested.


data attributes not working with input groups?

Expected behaviour
data attributes should work
Actual behaviour
data attributes not working
Datepicker version used
v1.7.0-dev
Example code
https://jsfiddle.net/hewhy2mm/15/

nevermind. had start-week instead of week-start

I lied, it still does not work with input-group
https://jsfiddle.net/hewhy2mm/16/

Use <div class="input-group date ..." data-date-week-start="1">.
I will add a clarification in the documentation on the following weekend.

Thanks, that works.


loadfn does not need to be mutable?

I'm seeing this warning on rust nightly:
warning: variable does not need to be mutable
 --> out/gl_bindings.rs:9:23
  |
9 |         fn metaloadfn(mut loadfn: &mut FnMut(&str) -> *const __gl_imports::raw::c_void,
  |                       ----^^^^^^
  |                       |
  |                       help: remove this `mut`
  |
  = note: #[warn(unused_mut)] on by default

Is this necessary or am I doing something wrong? Is there a way I can configure it to not have this warning in my build.rs?

Hmm, this might be an issue with how we are generating the bindings. What is the source code around out/gl_bindings.rs:9:23?

In the interim you'll be able to suppress this by adding the #[allow(unused_mut)] attribute to wherever you reference the bindings, but we should really fix this in the generator.

Here's the first few lines of the generated code:

        mod __gl_imports {
            pub use std::mem;
            pub use std::os::raw;
        }

        #[inline(never)]
        fn metaloadfn(mut loadfn: &mut FnMut(&str) -> *const __gl_imports::raw::c_void,
                      symbol: &str,
                      fallbacks: &[&str]) -> *const __gl_imports::raw::c_void {
            let mut ptr = loadfn(symbol);
            if ptr.is_null() {
                for &sym in fallbacks {
                    ptr = loadfn(sym);
                    if !ptr.is_null() { break; }
                }
            }
            ptr
        }

        pub mod types {
            #![allow(non_camel_case_types, non_snake_case, dead_code, missing_copy_implementations)]

Yeah, it seems that the mut on mut loadfn is unnecessary! We should fix the generator to not generate this 🤔


fix(select): add icon-inner & placeholder part

Pull request checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[x] Build (npm run build) was run locally and any changes were pushed
[x] Lint (npm run lint) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

[x] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

This can be considered a feature or a fix, due to the fact it adds a new part, but we haven't documented any of these yet so I'm not sure which way to lean here.
You cannot change the opacity of the select icon or target the placeholder color with the current parts.
Placeholder - Due to the fact that the placeholder and value share the same div, you would have to be able to target it based on the select-placeholder class which does not work with parts.
Select Icon - The opacity was set on the inner icon, so you can change the color using ::part(icon) but it will still have the default .33 opacity. I added a part for icon-inner since that is where the actual arrow is created, and also moved opacity so it is set on the parent wrapper which fixes this problem.
Issue Number: #17248
What is the new behavior?

adds icon-inner and placeholder parts
adds custom test for styling the select parts
remove opacity in icon-inner and set it on the icon wrapper

Does this introduce a breaking change?

[ ] Yes
[x] No

Other information

@liamdebeasi Let me know your thoughts on this implementation


Wait longer in cibuild to avoid connector test failure

Description
The connector test for reloading configuration on filesystem changes sometimes fails in cibuild. Trying a longer delay to fix that.
Quality checklist

[x] Your code complies with our Coding Style.
[x] You've updated unit and/or integration tests for your change, where applicable.
[ ] You've updated documentation for your change, where applicable.
If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
[ ] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
[ ] You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

/azp run Steeltoe.All


Multiple forms with use:enhance

Description
I got 2 forms and I did according the docs. The first form works fine but when I include use:enhance to the second one. It blocks actions. I gave
1. First Form
<form method="POST" action="?/addBooking" use:enhance>
Result: OK.

3. Second Form
<form method="POST" action="?/updateUser" use:enhance>
Resutl: Nothing. Tried to log the form from actions but nope.

Please check out the multiple forms page on the website again, I've updated the example to make it clearer how it should work.
I think in your case, you're using the same use:enhance function for both forms, they each need the enhance function from their respective superForm call.

Haven't expected a response. Thanks! The issue was about the validators option of zod schema.


[RFC] Paginating _cat APIs

Is your feature request related to a problem? Please describe
The _cat APIs in opensearch (such as _cat/indices, _cat/shards...) which are primarily used for monitoring and operational purposes, are both CPU and Memory intensive and thereby consume significant resources. As the cluster size increases (number of nodes, shards and indices), the usage of _cat APIs start to adversely impact the cluster. For large clusters, these APIs not only put the cluster's availability at risk, but their non-paginated responses make it difficult for the clients to consume their correspondingly larger response sizes with increased latencies.
The proposal to overcome such issues, is to paginate these APIs which would help in limiting both the response size and resource consumption (by not aggregating stats or information of all the queried elements at once).
Describe the solution you'd like
Proposal is to implement token based pagination.
Requirements:

The paginated responses should provide nextToken and previousToken in the response body as parameters to be used for querying the next and previous page respectively.
Users can pass nextToken (to be consumed from the response) and maxPageSize as query parameters. Number of entries in response should adhere to maxPageSize and thereby should always be less than or equal to user provided maxPageSize.
The behaviour around next and previous page should be clearly defined in case of APIs which do not snapshot/store the cluster's state at the time of first paginated query. For instance, _cat/indices API will always use point in time information from the current cluster state and build response accordingly.
IFF, the entries in paginated response are sorted in a particular order, user should be able to define the sort order of such entries. For instance, if paginated response of _cat/indices API has list of indices ordered according to their creation time, users should be able to define the order, be it ascending or descending.

Approach:

Introducing new V2 APIs for which default behaviour is paginated responses.
As supporting pagination in existing APIs as a default behaviour is a breaking change, the proposal is to instead
introduce new V2 APIs. The existing APIs can then be deprecated (say in opensearch version 3.x).
For e.g. curl "localhost:9200/_cat/indices/V2"

Introducing new feature flag (say largeClusterModeEnabled) which if set to true, the existing APIs will fail fast with a
validation error that non-paginated queries are not supported for large clusters.

Related component
Cluster Manager
Describe alternatives you've considered
No response
Additional context
No response

curl "localhost:9200/_cat/indices/V2"
the url path can be curl "localhost:9200/_cat/indices/paginate" so that usage is explicit

Introducing new feature flag (say largeClusterModeEnabled) which if set to true, the existing APIs will fail fast with a
validation error that non-paginated queries are not supported for large clusters.

@gargharsh3134  Please expand on this more with examples around _cat/segments and _cat/recovery, _cat/snapshots etc. would filtering be mandatory? how are the thresholds setup?

the url path can be curl "localhost:9200/_cat/indices/paginate" so that usage is explicit
@shwetathareja Since for this new path, we will anyway require a new RestAction, was thinking of keeping it more generic. As we are aligned towards deprecating the existing ones and making pagination as the default behaviour, having pagination related keywords in the URL seemed bit restrictive. That being said, i'm open to changing the path. Please let me know, if you still feel, pagination related keyword in path is required.
Thanks!

I don't like the idea of calling this as V2 API and deprecating default V1 in future.
Here is what I propose:
The url path can be: localhost:9200/_cat/indices/paginate=true to begin with. The default localhost:9200/_cat/indices will be paginate=false
A feature flag (largeClusterModeEnabled) or an equivalent cluster level setting can then dictate the default behavior of paginate=true/false, this can be discussed independent of this feature. In that way for a large cluster, user will not have to figure out whether to paginate or not.
The largeClusterModeEnabled flag can then be used to dictate the default behavior with other APIs as well which are resource extensive, for example deciding the verbosity of _nodes/stats.
In this way, a user will not have to worry about which variant of an API to use and this (should ideally?) come with no learning curve for the user. Also, the user will have the option to force a particular behavior by setting pagination to true/false. My point is that a user should just set the large cluster behavior once and then let OpenSearch take care of the underlying logic that we use for all APIs then.

Another thought, if pageSize is specified, paginate, otherwise don't (current behavior)?

@dblock Thanks for taking a look. Please find my responses for the 2 queries below:

The problem with feature flags that toggle default behavior is that there's no way to know for an instance of OpenSearch which flavor will be enabled. Thus your client has to be aware of what options the server has, and building a single client that works against both flavors is now impossible. I recommend adding the flag, defaulting it to false, then flipping it in the next major version.

The proposal is to keep the flag disabled by default, and the existing queries can work as is. Users can enable it if required, if done so, each API can honour its pre-defined fail-fast mechanism (for e.g, _cat/indices can define, querying for more than 100 indices is not supported). Though, I'm yet to come up with a complete design on how can a common strategy be implemented for the APIs requiring to onboard to this fail-fast mechanism.

Another thought, if pageSize is specified, paginate, otherwise don't (current behavior)?

The scenarios around using query params as an identifier were evaluated (say user explicitly passing next_token as null to start a paginated query), but dropped because of paginated APIs having a different response structure than what exists today for _cat APIs. Since, changing a query param should not lead to different response structures and formats, it sort of points towards using a new API URL.
A more detailed view of the response and requests is captured as part of individual proposals (for _cat/indices -> https://github.com/opensearch-project/OpenSearch/issues/14258).

The proposal is to keep the flag disabled by default, and the existing queries can work as is.

I understand, but please see my reasoning of having this flag at all. Clients will not be able to adapt easily to an API that behaves differently behind a feature-flag.

I understand, but please see my reasoning of having this flag at all. Clients will not be able to adapt easily to an API that behaves differently behind a feature-flag.
@dblock in large cluster mode when there are too many nodes and shards, the admin APIs may just continue to timeout and stress the nodes in the cluster. This largeClusterModeEnabled flag helps to fail fast and throw an exception. Just that this wouldntbe timeout exception rather a validation exception. Ideally there will be no change needed in the client.

@shwetathareja maybe we miscommunicated, I am referring to the following:
A feature flag (largeClusterModeEnabled) or an equivalent cluster level setting can then dictate the default behavior of paginate=true/false, this can be discussed independent of this feature. In that way for a large cluster, user will not have to figure out whether to paginate or not.

Here fail fast is not what's proposed, it's a different API behavior.

Here fail fast is not what's proposed, it's a different API behavior.

Got it @dblock, yeah not going ahead with different API behavior based on feature flag.

If we are talking about V2 _cat API, is it possible to include security in a way that resources like indices (_cat/indices, _cat/shards) a user doesn't have access to, but has permissions to execute the _cat API, wouldn't be returned?

@sharp-pixel We decided to introduce new _list APIs as paginated alternates to existing _cat APIs. You can find the relevant discussions under this issue: https://github.com/opensearch-project/OpenSearch/issues/14258.

Are the new _cat APIs being introduced in 2.18?

@Pallavi-AWS Yes, they will be part of 2.18 release. Documentation PR (https://github.com/opensearch-project/documentation-website/pull/8594) is still under review though, if you are looking for behavioural details.


Lag in editor object?

Say a node has 3 outnodes, if all three nodes are connected to separate nodes

if I am removing one node say first one(class which is in right side of the node)  ,  3 will be removed instead 1 by the library.
console.log(editor.drawflow.drawflow.Home.data,state.editor.getNodeFromId(id))

though both are same object, outputs object varies , why is this?

Hello,
Who wants to delete the connection?
or the Output?
Have you tried events?
https://github.com/jerosoler/Drawflow#events
Jero

So there is a situation that I want to delete a class, here o deleted class 1 , I used editor,removeNodeOutput(id, output_class), which deletes class, so connection removal event triggered, then I console both editor and getNodeFromId(id). as I shown above, outputs object differs even though it's the same node . output_1 in right side shows empty object which makes sense since there is nothing connected to it. but it I deleted the object, later I figured that connections to output_2 shifted to output_1 and output_3 to output_2 as shown in left side picture. Why is it?

When does the getNodeFromId do?
Can you show your code?
Simply because it only has two outputs.

am closing this issue. since I changed the code base I can't share it ,made a work around to make code work.anyway thanks @jerosoler


fix: add suspended_installations output

thanks @wei https://github.com/gr2m/app-stats-action/pull/9#issuecomment-677879924

p.s. I noticed suspendedInstallations and popular_repositories are not consistent in casing. Best to stick with one before publishing the action 😄

Looks good!

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


Better formatting for .set_precision

closes #11656
I found some extra time behind the sofa and started working on this. I made quite a few additions but by default everything should work as it did.

just calling .set_precision with an int will truncate all columns to that many decimal places as before
precision can be set per column as an extra dict to .set_precision
the precision values can be either ints or valid python str.format strings

I wanted to add this to allow formats like {:.2e} and possibly some string/date manipulations
the .set_precision should perhaps be called set_format (or format_cells) as a result

all formatting can be reset by calling .set_precision() (no args)

what's missing?

the documentation needs to be updated to reflect these changes (if you're happy with what's here I'll move on to updating the docs)
should leave the index alone and just format the data columns
tests?
support for pd.IndexSlice for subsets?

import itertools
import pandas as pd
import numpy as np

jobs = itertools.product(['a', 'b', 'c', 'd'], np.arange(1e-4, 1e-3, .0003), range(10))
rows = []
for v, v2, itr in jobs:
    rows.append({'param_1': v, 'param_2': v2, 'iter': itr,
                 'score_1': np.random.randint(0, 100, size=(1,))[0],
                 'score_2': np.random.rand(1, )[0]})
df_multi = pd.DataFrame(rows)
agg = df_multi.groupby(by=['param_1', 'param_2'])[['score_1', 'score_2']].agg(['mean', 'sem'])

printing with just the defaults

crazy awesome new formatting (forget that the kwarg is called column_formats that's been changed to subsets)

Thanks for putting this up.
A bit busy ATM, but I'll try to review in the next couple weeks. Sorry for the wait!

No worries I've been quite busy as well. There's a related issue from yesterday https://github.com/pydata/pandas/issues/11692 - the bottom line all the builtin styles, not just .set_precision should allow defining the column display format.

pls add some tests / whatsnew note enhancements / change the html-styling.ipynb to show the features as well.

@mattilyra going to throw out some partially-formed thoughts here, let me know what you think.
In light of https://github.com/pydata/pandas/issues/11692 (Styler not able to take formatters) I think we need a more general solution that what you've got here. I think we should determine the display value in the .translate step, and have none (or very minimal) logic in the Template itself. The default display value would be the raw value itself. Instead of
{% for c in r %}  {# for each column in the row #}
<{{c.type}} id="T_{{uuid}}{{c.id}}" class="{{c.class}}">
    {% if c.value is number %}
        {{c.value|round(precision)}}
   {# more elifs for each type of formatting? This will get ugly #}
    {% else %}
        {{c.value}}
    {% endif %}
{% endfor %}

We'd have
{% for c in r %}
<{{c.type}} id="T_{{uuid}}{{c.id}}" class="{{c.class}}">
        {{c.display_value}}  {# <-------- The change is here #}
{% endfor %} ```

We'd still need to define a nice API for users to map values to display values. Something like what you've got here would be good. And keeping shortcuts like `.set_precision` will still be useful, as you say.

Separating the display_value from the value value would also help with wrapping the content in arbitrary tags (links and images for example)

(I modify the translated context directly here; users would have a method to do the wrapping)

@TomAugspurger I agree that separating the display value makes sense. I don't quite get the point of having .set_precision if the formatting functionality goes into .format. Doesn't .set_precision become redundant in that case?
I think you're second example should already be possible with the changes here, as you can pass arbitrary format strings as the format for each column. The logic is a little unclear in the template and should probably be moved to ._translate.

See my PR at https://github.com/pydata/pandas/pull/11768
Roughly what I envision is that PR will define an API for people to apply custom formatters on a column / subset basis.

I don't quite get the point of having .set_precision if the formatting functionality goes into .format

.set_precision might still be useful as a shorter way of getting the same way. Instead of .set_format(x if not com.is_float(x) else "{:2f}".format(x)), you type .set_precision(2).

as you can pass arbitrary format strings as the format for each column

I didn't notice that when I first looked through.
Again, this hasn't fully formed in my mind yet, but do you think that .set_precision can be rewritten in terms of https://github.com/pydata/pandas/pull/11768? So set_precision will have a nice API for setting different precision levels per column, etc. And the implementation will be modifying the internal dict (I called it _display_funcs) tracking how to format each cell. It doesn't need to know anything about the template or the ._translate step.

I'm still not sure how .format / .set_format will work, how multiple formatters will be combined if at all.

What do you mean multiple formatters?

but do you think that .set_precision can be rewritten in terms of #11768?

Yeah should be possible. Currently .set_precision takes a dict (subset) mapping column names to formats those columns should be displayed as. The format can be either an int (specifying the number of decimal points) or a python format string. This is then handled in the template (to be moved to ._translate).
I hadn't thought that you would call .set_format as .set_format(x if not com.is_float(x) else "{:2f}".format(x)) but as .set_format(a='{:.2f}') (where a is a column name), or perhaps explicitly passing in a dict of column names to format values, as .set_precision currently does (in this PR) for subset. How you would add the formatting for one specific cell I'm not sure, could we use the IndexSlice to allow specifying which column/cell the user wants to specify the format for. That would at least be fairly general. Currently it would be difficult to handle that in the template but moving the display_value logic away from the template would also make that easier.
If we can nail down how this whole thing should roughly work I'm happy to push up a proposal implementation for this.

I'm still not sure how .format / .set_format will work, how multiple formatters will be combined if at all.

What do you mean multiple formatters?

Nevermind about that, probably a bad idea.

but as .set_format(a='{:.2f}')

Yes, I think you're right. Sorry about that this is all still coming together. The way I see .format working now is it takes a formatter which is either a single value to be applied to all items or a dict of column names: formatter. An individual formatter can be

a string s in which case s.format(x) is the display value (x is an individual cell)

df.style.format('{:2f}')  # equivalent to `.set_precision(2)`

a callable, in which case c(x) is the display value (is this even necessary)

I hate to make the work you've done here obsolete :/  but it looks like a more general .format / .set_format option is the way to go. Interested in doing that? I have a sketch in https://github.com/pydata/pandas/pull/11768/files for how the translate step will work if you want to implement .format on top of that.

Well it isn't really extra work as that's more or less how .set_precision works in this PR. I just need to transfer the logic of parsing the format value to .translate from the template and write examples.
I think having the option os passing a callable as the formatter is also a good idea, it allows for a lot of flexibility. I think format callable could in that case take also the row and column indices not just the cell values - I can think of use cases where knowing for instance the row value of a MultiIndex becomes quite useful.
I'm happy to keep working on this.

I just need to transfer the logic of parsing the format value to .translate from the template and write examples.

Feel free to repurpose this PR to take over .format. Are you comfortable enough with git to merge in my branch? Or you can just copy-paste the changes. I've got a probably bad, certainly broken implementation of .format there that you can take pieces from.
For .format I think the signature should be
def format(self, formatter, subset=None):

Where formatter can be either 1. a scalar to be applied to the entire frame (or a subset with subset!=None) 2. a dict of column: formatter.

I think format callable could in that case take also the row and column

The trouble with this is that all styler functions written by users have to accept those as well, even if they don't use them, which could be ok.

I just need to transfer the logic of parsing the format value to .translate from the template and write examples.

Feel free to repurpose this PR to take over .format. Are you comfortable enough with git to merge in my branch? Or you can just copy-paste the changes. I've got a probably bad, certainly broken implementation of .format there that you can take pieces from.
For .format I think the signature should be
def format(self, formatter, subset=None):

Where formatter can be either 1. a scalar to be applied to the entire frame (or a subset with subset!=None) 2. a dict of column: formatter.

I think format callable could in that case take also the row and column

The trouble with this is that all styler functions written by users have to accept those as well, even if they don't use them, which could be ok.

Well the user style functions can always take a **kwargs if they don't need the row/column index, it's easier to ignore them when you don't need them than it is to dig them up if they're not given to you.
I think I'll manage with git, merging your branch into this one.

@mattilyra Have you had a chance to work on this any more? Any unforeseen obstacles coming up?
I'm going to try and knock out sparse MultiIndices and truncated reprs in the next week or two, and will base it off the changes to the template. Just post here if you see any significant changes that are needed, or if you want to split that template change off into a separate pull request.

@TomAugspurger status of this

closing, but pls reopen if you'd like to update