outlook-encrypt-attachments sample did not work on Outlook Windows Client

URL of sample
outlook-encrypt-attachments
Describe the bug
The Add-in seems not to be working in the Office Outlook Windows Client. Tested it successfully on the Web version but the Windows client opened with an error on top of the New Message window.
To Reproduce
Steps to reproduce the behavior:

Sideload the Add-in cfm instructions.
Open New Message
See error message on top 👇🏻:

Expected behavior
Expecting it to run just like the Outlook Web Client
Screenshots

Environment

Platform [PC desktop, Mac, iOS, Office Online]: PC desktop

Host [Excel, Word, PowerPoint, etc.]: Outlook

Office version number:

Operating System:

Browser (if using Office Online): N/A

Additional context
For a repro you can see it in my "Soft as in Software" Live Stream on YouTube:
https://youtu.be/AhvNMzDwoow

Hi @aafvstam,
Thanks for noticing this. I renamed the repo to Office-Add-in-samples. But I forgot that this will break all the GitHub pages that host files for the samples. I checked in an update for all samples that fixes this. So it should work for you now.
BTW: Keep in mind that the sample will not encrypt attachments on Outlook on Windows (noted in readme) because it cannot import the crypto library. Only commands.js is loaded when running on Outlook on Windows.
Thanks!
David


Confusing behavior with using enviornment variables for group level options

Two issues:

In general, Group level command option provided from the environment only takes effect when the command is provided. I am not sure if this is a bug or by design.
When we use version_option with env variable, the behavior gets a bit extra confusing. (see below)

# cli.py
import click

@click.group()
@click.version_option(version=1)
def cli():
    "CLI tool"

@cli.command()
@click.option("--username")
def greet(username):
    click.echo("Hello %s!" % username)

if __name__ == "__main__":
    cli(auto_envvar_prefix="GREETER")

Expected Behavior
$ export GREETER_VERSION=true
$ python cli.py
test.py, version 1

$ python cli.py greet
test.py, version 1     # maybe we should just ignore this line
Hello, None!

Actual Behavior
Tell us what happens instead.
$ python cli.py
Usage: test.py [OPTIONS] COMMAND [ARGS]...

  CLI tool

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  greet

$ python cli.py greet
test.py, version 1

Environment

Python version: 3.7
Click version: 7.1.2

Choosing --version for the examples wasn't particularly helpful, as version_option has less common behavior.
The second call (example --version greet) shows only the version because version_option exits after showing the version, it's not meant to keep going.
The first call shows help and exits because no args are passed on the command line. The first thing Group does if no args are present is show help (unless no_args_is_help is disabled). It only parses its own arguments and resolves values from other sources after that. Again, using --version doesn't make much sense here because you really wouldn't expect to pass its value as an env var.


Pressing back button on a narrowed view exits the app

We had a recent implementation on this, but is this a know issue, or developed like this?

https://github.com/zulip/zulip-mobile/pull/1367 got merged not too long ago, and should be in the current version. However, I'm still seeing this behavior. Is this intended?

We have reworked on this, can be closed now.


should launch FRIServer rather than LBR Joint Sine Overlay?

LBR Demos FRI ROS 2 C++ and LBR Demos FRI ROS 2 Python, here may be should launch FRIServer on smartPAD? After that the code could launch lbr_app and publish ros topic.

Hi @CarlDegio , sorry just saw the message now. Yes, that would work. Are you suggesting to change this part in the documentation?

Yes, actually I mean the mistake of figure? Here:

I mean here should start FRIServer.


inheritance: Overridden class method is not called when calling from base class

If I have the following source, I would expect the output "OK", meaning that the subclass B had the method foo called. I actually get "BAD" meaning that the foo method was not overridden.
/// Expect:
/// - output: "OK\n"

class A {
    public function foo(this) {
        .bar()
    }
    function bar(this) {
        println("BAD")
    }
}

class B : A {
    function bar(this) {
        println("OK")
    }
}

function main() {
    B().foo()
}

An ugly (and not really extendable) workaround for this is passing in the actual class as an optional parameter:
/// Expect:
/// - output: "OK\n"

class A {
    public function foo(this, anon b: B? = None) {
        if b.has_value() { b!.bar() }
        else { .bar() }
    }
    function bar(this) {
        println("BAD")
    }
}

class B : A {
    public function bar(this) {
        println("OK")
    }
}

function main() {
    let b = B()
    b.foo(b)
}

Virtual methods have to be explicitly marked, otherwise there will be no virtual dispatch, just regular compile time lookup.
class A {
    public function foo(this) {
        .bar()
    }
    virtual function bar(this) {
        println("BAD")
    }
}

class B : A {
   virtual  function bar(this) {
        println("OK")
    }
}

function main() {
    B().foo()
}


Wiki is missing important information

I love this plugin, but noticed that the wiki is missing a lot of information about how to use this plugin. Some of the information is covered in your videos, but not in the wiki
Would it be helpful if I drafted some text explaining some of the features?
I've had a lot of situations where I misunderstood how some aspect of the plugin worked, and had to rewatch the videos several times to realise what my mistake was. MGrass currently has no write-up. (unless I'm mistaken?)
Also, I still get confused with Region Size and Terrain size.
Also, it would be SUPER helpful to see descriptions of what each property does in the editor. I believe this will now possible in godot 4.3 with this new gdextension feature: https://github.com/godotengine/godot/pull/83747.

Hello There!
 But also I you want to contribute to this thing I will really appreciate that!
You can send me some text so I can add that to wiki page! also if some part of already existing wiki page is not explained well or it lack some explanation you can tell me so I can fix that!
Thanks for telling me that by the way! :)

I've drafted some text... Let me know what you think!
Also, is there a good way to chat with you directly? maybe email, or messenger? I'd love to get better understandings of how some of the things in this plugin work. I would be happy to draft more text for the wiki if you need
I've also included some bugfix and feature requests. also, it would be super helpful if you clarified the connection between "chunks" and "grid units" in the base concept wiki page.
I've also added a little terrain LUT shader example that I think could be helpful for people. Maybe people can contribute open source example shaders that you can include with the plugin?
Quick Start Guide

Install and activate plugin
Create new 3D scene. Add an MTerrain node. Select the node and look at the inspector for the next steps.
Set a path to the Data Folder. This should be an empty folder where MTerrain will save all the terrain data.
Set terrain_material to an MTerrainMaterial. You can use the example in the addon folder as a starting point.
Choose region_size and min_size. These are the most important settings because they define the grid units, and you cannot change later. To make good choices it is helpful to understand what regions and chunks are. (see below for a quick summary, or read the wiki for more details)

min_size defines the smallest possible grid unit in meters. Lower numbers allow the terrain to be chunked more efficiently
region_size defines how big each region will be. This setting is in grid units. min_size * region_size = region size in meters.
Larger regions require more RAM, but are chunked more efficiently which means faster rendering times.
e.g. if you want a terrain that is 8192x8192km, and you want to divide that into 16 x 16 regions for a total of 256 regions, you could try the following settings:
option a) min_size of 64 * region size of 8 which makes regions that are 512x512m, and use a terrain size of 128
option b) min_size of 32 * region size of 16 which makes regions that are 512x512m, and use a terrain size of 256
Formulas:
a) sqrt(Terrain size in meters) = min_size * terrain_size
b) sqrt(Region size in meters) = min_size * region size
c) sqrt(Number of regions) = sqrt(terrain_size in meters) / sqrt(region_size in meters)
NOTE: once you've started sculpting your terrain you cannot change these settings.

Choose other settings:
a) terrain_size x min_size = Terrain size in meters. e.g. if you want a 8192x8192m terrain, and your min_size is 64, you should make your terrain size be 8192/64, which is 128. Increase this number to add more regions
b) region_limit controls how many regions can be loaded at one time. lower this number for faster load times.
c) layers_data_dir is a path to a folder where MTerrain can store layer data. This is needed if you intend to use layers for non-destructive terrain sculpting.

Press Create in the inspector to see your terrain.

Press the Paint button in the toolbar (include pic) to start sculpting your terrain. Switch to the Paint tab that appears in the top right dock (image). Select a brush, brush size, and brush mode. You can now sculpt your terrain. You can use Layers for non-destructive editing.

NOTE: Remember to save regularly - the painted data isn't automatically saved. You can do this by saving the scene
Importing Heightmap

Go to Project -> Tools -> Import MTerrain data
Select the file to import.
Set region_size. This controls how your heightmap will be divided into regions. e.g if your heightmap is 512x512, and you choose 256, then your heightmap will be divided into 2x2 regions of 256x256 squares. NOTE: there is no way to scale your heightmap in the xz plane during this import process
Toggle the "heightmap" button
Set the height scale for the import. ?????
Choose the output directory. This should be the same as your DATA folder for your MTerrain node.
Import. This can take some time and your computer may become unresponsive. When complete you should have .res files in your DATA folder.

MGrass Quick Start Guide

Setup an MTerrain
Add an MGrass node as child of MTerrain
Create MGrassData and save it as a .res resource
Select density for this MGrass. This controls how small the smallest grid square of grass will be.

IMPORTANT: You can not change this setting after you start painting grass.
E.g. for grass, 0.25 or 0.5 density is good. For trees, 2 or 4 density is good. For very large rocks, you might use 8.
To make this choise, create a test terrain, play around with the other settings, paint some mgrass and decide if you need to start again.

Add a Mesh. Different LODs are Optional. If some LOD is missing, mgrass will fall back to a different LOD
Add a Material. Different LOD are optional. You cannot have more than one material per mesh
Add grass_lod_settings. Here you can control the density of meshes, random rotation, scale, position.

The density is controlled by "grass_in_cell" and must be a whole number, no fractions. This means that the lowest density is 1. the maximum density is 256. This is the reason for setting an appropriate density in MGrassData.

Click on MGrass node and in press the paint button in the toolbar (include picture). Click the Paint tab that appears in the inspector dock. Select a brush size, and a brush (null is just a round brush). Now you can paint your grass on the terrain.

Regions, Chunk, and Grid units
To work with MTerrain it is helpful to understand what Regions, Chunk, and Grid units are.
If you zoom out all the way, you have a terrain. This terrain is broken down into regions. Regions are like stand-alone mini-terrains that have been stitched at the edges. MTerrain loads and unloads regions in their entirety. You cannot load part of a region only.
If you zoom into a region, this is where the efficiency magic happens. MTerrain breaks a region into chunks, and does some magic to make chunks that are far away use less resources for rendering.
The smallest possible chunk is called a grid unit. Most of the settings are measured in grid units
Troubleshooting:

I'm painting but my grass isn't showing up. Why?
Firstly, select MTerrain and toggled Create on and off again. Some setting in MGrass require you to recreate the terrain to appear

Another issue might be that your density * grass_in_cell is lower than the size of your brush. Try increasing grass_in_cell or using a bigger brush
Another issues could be that you've accidentally deselected the MGrass node. Try turning paint mode of and on again.

I'm sculpting the terrain, but my work is dissapearing.
MTerrain doesn't auto save you sculpt data. If you move in the viewport and MTerrain loads a different region before you've saved, the data for the unloaded region will be lost.

FEATURE REQUESTS

A tool to rescale the current heightmap data, both in XZ plane and in the Y direction.
Autosave when painting. or at least warn when an unsaved region is being unloaded? or autosave when unloading a region
A calculator for deciding region size and terrain size. The MTerrainInfo tool seems like a good place for this
Ability to export entire heightmap as a single exr file
a button to recreate terrain that's clickable when an MGrass node is selected.
An option to keep terrain on when switching scene, or at least an option to automatically create terrain when you switch back to an mterrain scene. Often when I'm working on my terrain, I need to switch to a different scene for a moment, and when I come back, MTerrain is off again. This would be partially solved by a permanent "create" button somewhere in the UI, but would be better if automatic.
Please switch Region_Size from grid units, to meters. This would solve a LOT of confusion about what this setting does. I think there's an easy way to fake this in the inspector, so that it is displayed to the user as region size in meters without having to change the underlying code. Or at least have a label that also tells you the region size in meters.
Some way to visualise the whole terrain when editing. Maybe a minimap? could be just an image of the whole heightmap, with an outline showing which regions are loaded, and what the editor camera's XZ coordinates are on the minimap? or a super_low_resolution rendering off all regions at once? . I often get lost trying to navigate my terrain. I might be able to draft something using gdscript, but I need help working with the heightmap data, stitching it into one big image.

BUGFIXES

In PAINT mode, sometimes the mgrass or mterrain node gets deselected. Maybe the plugin can detect when this has happened and automatically disable paint mode? or have an option to lock the selected node so that godot doesn't allow you to deselct the current node being painted

Painting holes in terrain creates problems for future painting because the brush gets stuck at the edges of the hole, and it's very difficult to "Unpaint" a hole.
Also, the brushes "collision" uses the whole brush, not just the center of the brush. I should be able to paint up to the edge of the hole, but my mouse gets stopped by the collision (i think).

Questions

What is the downside to smaller min_size?

MTerrainMaterial shader with LUT

Create a copy of the start.gdshader in the MTerrain addon folder.
Replace the fragment code with the following:

uniform sampler2D TerrainLUT;
uniform float terrain_max_height = 740.4
void fragment(){
ALBEDO = texture(TerrainLUT, vec2(y/terrain_max_height, 0.)).rgb *0.1;
}

For the shader_parameter TerrainLUT,  create a new GradientTexture1d. Fill it with random (or not random) colors.

Thank you very much rossunger!
I just modified some of these and I added this page: page , see if it is good or we can something more!
Really good work and many good suggestion! Thank you!
You can join on my discord channel

This is great!

I edited the addon to add a button RELOAD which appears in the MTools panel. In the MTools.tscn I added a button and connected it to the following :
in mtools.gd:
func _on_button_pressed() -> void:
	request_recreate.emit()

and in m_terrain.gd, in the enter_tree function I added:
tools.request_recreate.connect(request_recreate)

func request_recreate():
	if active_terrain:
		active_terrain.create = false
		active_terrain.create = true

this solves my problem with reloading the terrain while working on mgrass. Might help someone else

I wrote a editor script to export grass data:
@tool extends EditorScript

func _run():
	var selection = get_editor_interface().get_selection().get_selected_nodes()[0]
	if selection is MGrass:
		export_grass_data(selection)

func export_grass_data(mgrass:MGrass):
	var img = Image.create(mgrass.get_width(),mgrass.get_height(),false,Image.FORMAT_L8)
	for x in mgrass.get_width():
		for y in mgrass.get_height():
			if mgrass.get_grass_by_pixel(x,y):
				img.set_pixel(x,y, Color.WHITE)
	img.save_png("res://TO_DELETE/MTerrain scale tool/Test.png")

and here's one to export the whole heightmap as a single exr file
@tool extends EditorScript

func _run():
	var selection = get_editor_interface().get_selection().get_selected_nodes()[0]
	if selection is MTerrain:
		export_heightmap(selection)

func export_heightmap(mterrain:MTerrain):
	var x_count = mterrain.terrain_size.x* mterrain.get_base_size()
	var y_count = mterrain.terrain_size.y* mterrain.get_base_size()
	var img = Image.create(x_count,y_count,false,Image.FORMAT_RF)
	for x in x_count:
		for y in y_count:
			var h = mterrain.get_height_by_pixel(x, y) / 164
			img.set_pixel(x,y, Color(h,h,h,1))
	img.save_exr("res://TO_DELETE/MTerrain scale tool/heightmap.exr", true)

Hi Guys
First of all great work, but as a beginner I still struggle to get it up and running. I have an height map image of 3072 x 3072 pixels and I managed to import this with the tool with region size setting of 32. It was correctly divided in 96 x 96 regions. Now I tried to 'create' but I get an error

Unfortunately I'm not natively English and I'm struggling to understand how the settings, as displayed, relate to the information from the WiKi. So I think that the WiKi should be improved some more. Maybe add a common mistakes section? I also tried finding the error message in the script files in order to lookup the code, but failed at that as well.
As for my struggle, here are my settings.

At this point I don't know what to do. How to adjust the settings so it works with my 3072 x 3072px image? Or do I need to update the image to 4096 x 4096. Thanks for any reply.
With kind regards
Ludo


Need an option for HTTP client endpoint to disable the SSL Certificate Validation.

Description:
I am coding in Ballerina to make HTTP request against an internal web services. The internal web service has self-signed SSL certificate.
I can add that self-signed certificate into my truststore.p12 file, but I want to see if there is an option to allow me disable the SSL validation?
Steps to reproduce:

I don't want to attach the p12 file for each application written in Ballerina, neither I want to manually add each Self-Signed SSL Cert to Ballerina's Home directory's p12 truststore. There shall be an easy way to disable the SSL Cert. If we are writing Ballerina code for integration parts, there are a lot of chances that the code is only wiring up with the internal service. Self-Signed SSL Cert is widely used if the application is only implemented inside company's internal network.
other languages such as Python allows to disable the SSL validation via an optional parameter
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):
Suggested Labels (optional):
SSL, Self-Signed Certificate

@hejunchen Thanks for reporting this issue.
We are discussing this with the team. Hopefully this feature will be added in a future release.


0.8.1 potential release plan

Now that Magnus has been able to get everything (including image decryption) working with the main branch of CAA and the 0.8 release of the operator, we can think about create a new release to address the challenges with the 0.8 release. The path to do this looks something like:

[ ] Pin the working version of KBS in version.yamls
[ ] Add the link to the instructions that create the correct encrypted image (based on https://github.com/confidential-containers/guest-components/pull/451)
[ ] Get someone else to check encrypted image works on main in their environment
[ ] Cut an 0.8.1-alpha following the release process
[ ] Re-test everything
[ ] Full release

Note - we are not planning to bump kata-runtime, or any extra component versions, so the full release process we normally have isn't required. We might want to add a disclaimer message on the release notes that this is an interim release though

@stevenhorsman can we create a release (may be an alpha to reduce full release related work) so that we have a working set of components based on CCv0 kata runtime?
I believe a full release might make sense with main as lots of things have changed and CCv0 might not be relevant as is evident here - https://github.com/confidential-containers/cloud-api-adaptor/issues/1750

Yeah I'm happy to create an alpha based on CCv0 - I guess that we need to find a version of the attestation-agent that is compatible with CCv0 kata-agent first, or fixed up the CCv0 version, as it sounds like the latest version of our code isn't working?

I was thinking the same thing. with https://github.com/confidential-containers/cloud-api-adaptor/pull/1748 merged, there would be a somewhat stable foundation (well tested on the CI) that works with trustee/kbs v0.8.2 (tested manually)
I would also like to a fix a race condition for api-server-rest described in #1695 ...testing a fix for that at the moment. but admittedly the race condition is not a regression, it was always there.


[UnitTest/DCube] Genereate gtest xml files to report unittest results

This patch generates gtest xml files reported to DCube as unittest
results.
Signed-off-by: Dongju Chae<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.4.20191203. Thank you for submitting PR #81. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ec2-54-180-96-14.ap-northeast-2.compute.amazonaws.com/.


arrow-bci-schedule-and-publish: TypeError: 'NoneType' object is not subscriptable

The schedule-and-publish job currently is throwing many errors every time it executes. These look to be because the client is expecting a different Conbench API schema than what actually is deployed for Arrow Conbench today.
https://buildkite.com/apache-arrow/arrow-bci-schedule-and-publish/builds/43885#01886d35-97d3-4e2a-9e50-1dbb951effc0/116-131
Traceback (most recent call last):
  File "/app/buildkite/schedule_and_publish/publish_benchmark_results_on_slack.py", line 19, in publish_benchmark_results_on_slack
    text = notification.generate_slack_message_text()
  File "/app/models/notification.py", line 118, in generate_slack_message_text
    + self.generate_comment_with_compare_runs_links()
  File "/app/models/notification.py", line 63, in generate_comment_with_compare_runs_links
    url = self.benchmarkable.conbench_compare_runs_web_url(machine)
  File "/app/models/benchmarkable.py", line 169, in conbench_compare_runs_web_url
    baseline_run_id = self.baseline_machine_run(machine).id
AttributeError: 'NoneType' object has no attribute 'id'

https://buildkite.com/apache-arrow/arrow-bci-schedule-and-publish/builds/43885#01886d35-97d3-4e2a-9e50-1dbb951effc0/116-152
Traceback (most recent call last):
  File "/app/buildkite/schedule_and_publish/publish_benchmark_results_on_slack.py", line 19, in publish_benchmark_results_on_slack
    text = notification.generate_slack_message_text()
  File "/app/models/notification.py", line 118, in generate_slack_message_text
    + self.generate_comment_with_compare_runs_links()
  File "/app/models/notification.py", line 62, in generate_comment_with_compare_runs_links
    status = self.benchmarkable.machine_runs_status(machine)
  File "/app/models/benchmarkable.py", line 204, in machine_runs_status
    raise e
  File "/app/models/benchmarkable.py", line 185, in machine_runs_status
    regressions, improvements = self.regressions_and_improvements(machine)
  File "/app/models/benchmarkable.py", line 253, in regressions_and_improvements
    [
  File "/app/models/benchmarkable.py", line 256, in <listcomp>
    if r["analysis"]["lookback_z_score"]["regression_indicated"]
TypeError: 'NoneType' object is not subscriptable

These are repeated a few times per build.

As I mentioned here, the Arrow Conbench HTTP API should be using the latest schema available right now. I'm a little confused where the mismatch is. I haven't looked into it too much yet.

Oh crap, is this because the contender or baseline is missing for a result? We might need to do
(r["analysis"].get("lookback_z_score") or {}).get(regression_indicated)

or similar

Ah yeah here's what benchalerts has now
https://github.com/conbench/conbench/blob/81a0272cc28c8bd10d3f993d58c0f63efbff8f02/benchalerts/benchalerts/conbench_dataclasses.py#L75-L79
                    has_z_regression=comparison["analysis"]["lookback_z_score"][
                        "regression_indicated"
                    ]
                    if comparison["analysis"]["lookback_z_score"]
                    else False,

I'll put together a PR

The PR closed this and it's probably fixed, but let's keep an eye on it and reopen if that was in fact not the problem

Nice, that error went away: https://buildkite.com/apache-arrow/arrow-bci-schedule-and-publish/builds/43909#01886e12-a423-4cb6-984e-85036a3cec7f
The first error still shows up, though:
  File "/app/models/benchmarkable.py", line 169, in conbench_compare_runs_web_url
    baseline_run_id = self.baseline_machine_run(machine).id
AttributeError: 'NoneType' object has no attribute 'id'

I see; this doesn't really have to do with the API schema but is a separate bug. Its scope is probably just limited to one run comparison, and then the code moves onward. (This is probably the same code that causes the SAWarning down below but the logs are mixed up.) Will open another issue.

I changed the title to reflect the specific problem that I think this issue is/was supposed to track.

I am still seeing
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/app/buildkite/schedule_and_publish/publish_benchmark_alerts_on_pull_requests.py", line 22, in publish_benchmark_alerts_on_pull_requests
    notification.generate_pull_comment_body_for_high_regression_alert(
  File "/app/models/notification.py", line 97, in generate_pull_comment_body_for_high_regression_alert
    runs = self.benchmarkable.runs_with_high_regressions(benchmark_langs_filter, benchmark_machine_ignorelist)
  File "/app/models/benchmarkable.py", line 298, in runs_with_high_regressions
    results = [
  File "/app/models/benchmarkable.py", line 301, in <listcomp>
    if r["contender"]["language"] in benchmark_langs_filter
TypeError: 'NoneType' object is not subscriptable
ERROR: 1
🚨 Error: The command exited with status 1

(https://buildkite.com/apache-arrow/arrow-bci-schedule-and-publish/builds/43992#0188710c-69ad-4116-bf84-ca7a7d8f6048/116-127)
Re-opening this, assuming that this is not yet resolved.

Quick patch attempt: https://github.com/voltrondata-labs/arrow-benchmarks-ci/pull/123

I don't see any more tracebacks related to dictionary lookups where the dict obj is None. Calling this done.


chore(deps): update all non-major dependencies

This PR contains the following updates:

Package
Type
Update
Change
Pending

fastapi (changelog)
project.dependencies
minor
==0.112.2 -> ==0.115.0

google-cloud-bigquery
project.dependencies
minor
==3.11.4 -> ==3.26.0

google-cloud-logging
project.dependencies
patch
==2.7.0 -> ==2.7.2

google-cloud-pubsub
project.dependencies
minor
==2.18.3 -> ==2.23.1

google-cloud-storage
project.dependencies
minor
==1.43.0 -> ==1.44.0

python-dateutil
project.dependencies
minor
==2.8.2 -> ==2.9.0.post0

slack-sdk
project.dependencies
minor
==3.20.2 -> ==3.33.1

strawberry-graphql (source, changelog)
project.dependencies
minor
==0.235.1 -> ==0.243.1

uvicorn (changelog)
project.dependencies
minor
==0.29.0 -> ==0.30.6
0.31.0

Release Notes

fastapi/fastapi (fastapi)
v0.115.0
Compare Source
Highlights
Now you can declare Query, Header, and Cookie parameters with Pydantic models. 🎉
Query Parameter Models
Use Pydantic models for Query parameters:
from typing import Annotated, Literal

from fastapi import FastAPI, Query
from pydantic import BaseModel, Field

app = FastAPI()

class FilterParams(BaseModel):
    limit: int = Field(100, gt=0, le=100)
    offset: int = Field(0, ge=0)
    order_by: Literal["created_at", "updated_at"] = "created_at"
    tags: list[str] = []

@app.get("/items/")
async def read_items(filter_query: Annotated[FilterParams, Query()]):
    return filter_query

Read the new docs: Query Parameter Models.
Header Parameter Models
Use Pydantic models for Header parameters:
from typing import Annotated

from fastapi import FastAPI, Header
from pydantic import BaseModel

app = FastAPI()

class CommonHeaders(BaseModel):
    host: str
    save_data: bool
    if_modified_since: str | None = None
    traceparent: str | None = None
    x_tag: list[str] = []

@app.get("/items/")
async def read_items(headers: Annotated[CommonHeaders, Header()]):
    return headers

Read the new docs: Header Parameter Models.
Cookie Parameter Models
Use Pydantic models for Cookie parameters:
from typing import Annotated

from fastapi import Cookie, FastAPI
from pydantic import BaseModel

app = FastAPI()

class Cookies(BaseModel):
    session_id: str
    fatebook_tracker: str | None = None
    googall_tracker: str | None = None

@app.get("/items/")
async def read_items(cookies: Annotated[Cookies, Cookie()]):
    return cookies

Read the new docs: Cookie Parameter Models.
Forbid Extra Query (Cookie, Header) Parameters
Use Pydantic models to restrict extra values for Query parameters (also applies to Header and Cookie parameters).
To achieve it, use Pydantic's model_config = {"extra": "forbid"}:
from typing import Annotated, Literal

from fastapi import FastAPI, Query
from pydantic import BaseModel, Field

app = FastAPI()

class FilterParams(BaseModel):
    model_config = {"extra": "forbid"}

    limit: int = Field(100, gt=0, le=100)
    offset: int = Field(0, ge=0)
    order_by: Literal["created_at", "updated_at"] = "created_at"
    tags: list[str] = []

@app.get("/items/")
async def read_items(filter_query: Annotated[FilterParams, Query()]):
    return filter_query

This applies to Query, Header, and Cookie parameters, read the new docs:

Forbid Extra Query Parameters
Forbid Extra Headers
Forbid Extra Cookies

Features

✨ Add support for Pydantic models for parameters using Query, Cookie, Header. PR #12199 by @tiangolo.

Translations

🌐 Add Portuguese translation for docs/pt/docs/advanced/security/http-basic-auth.md. PR #12195 by @ceb10n.

Internal

⬆ [pre-commit.ci] pre-commit autoupdate. PR #12204 by @pre-commit-ci[bot].

v0.114.2
Compare Source
Fixes

🐛 Fix form field regression with alias. PR #12194 by @Wurstnase.

Translations

🌐 Add Portuguese translation for docs/pt/docs/tutorial/request-form-models.md. PR #12175 by @ceb10n.
🌐 Add Chinese translation for docs/zh/docs/project-generation.md. PR #12170 by @waketzheng.
🌐 Add Dutch translation for docs/nl/docs/python-types.md. PR #12158 by @maxscheijen.

Internal

💡 Add comments with instructions for Playwright screenshot scripts. PR #12193 by @tiangolo.
➕ Add inline-snapshot for tests. PR #12189 by @tiangolo.

v0.114.1
Compare Source
Refactors

⚡ Improve performance in request body parsing with a cache for internal model fields. PR #12184 by @tiangolo.

Docs

📝 Remove duplicate line in docs for docs/en/docs/environment-variables.md. PR #12169 by @prometek.

Translations

🌐 Add Portuguese translation for docs/pt/docs/virtual-environments.md. PR #12163 by @marcelomarkus.
🌐 Add Portuguese translation for docs/pt/docs/environment-variables.md. PR #12162 by @marcelomarkus.
🌐 Add Portuguese translation for docs/pt/docs/tutorial/testing.md. PR #12164 by @marcelomarkus.
🌐 Add Portuguese translation for docs/pt/docs/tutorial/debugging.md. PR #12165 by @marcelomarkus.
🌐 Add Korean translation for docs/ko/docs/project-generation.md. PR #12157 by @BORA040126.

Internal

⬆ Bump tiangolo/issue-manager from 0.5.0 to 0.5.1. PR #12173 by @dependabot[bot].
⬆ [pre-commit.ci] pre-commit autoupdate. PR #12176 by @pre-commit-ci[bot].
👷 Update issue-manager.yml. PR #12159 by @tiangolo.
✏ Fix typo in fastapi/params.py. PR #12143 by @surreal30.

v0.114.0
Compare Source
You can restrict form fields to only include those declared in a Pydantic model and forbid any extra field sent in the request using Pydantic's model_config = {"extra": "forbid"}:
from typing import Annotated

from fastapi import FastAPI, Form
from pydantic import BaseModel

app = FastAPI()

class FormData(BaseModel):
    username: str
    password: str
    model_config = {"extra": "forbid"}

@app.post("/login/")
async def login(data: Annotated[FormData, Form()]):
    return data

Read the new docs: Form Models - Forbid Extra Form Fields.
Features

✨ Add support for forbidding extra form fields with Pydantic models. PR #12134 by @tiangolo.

Docs

📝 Update docs, Form Models section title, to match config name. PR #12152 by @tiangolo.

Internal

✅ Update internal tests for latest Pydantic, including CI tweaks to install the latest Pydantic. PR #12147 by @tiangolo.

v0.113.0
Compare Source
Now you can declare form fields with Pydantic models:
from typing import Annotated

from fastapi import FastAPI, Form
from pydantic import BaseModel

app = FastAPI()

class FormData(BaseModel):
    username: str
    password: str

@app.post("/login/")
async def login(data: Annotated[FormData, Form()]):
    return data

Read the new docs: Form Models.
Features

✨ Add support for Pydantic models in Form parameters. PR #12129 by @tiangolo.

Internal

🔧 Update sponsors: Coherence link. PR #12130 by @tiangolo.

v0.112.4
Compare Source
This release is mainly a big internal refactor to enable adding support for Pydantic models for Form fields, but that feature comes in the next release.
This release shouldn't affect apps using FastAPI in any way. You don't even have to upgrade to this version yet. It's just a checkpoint. 🤓
Refactors

♻ Refactor deciding if embed body fields, do not overwrite fields, compute once per router, refactor internals in preparation for Pydantic models in Form, Query and others. PR #12117 by @tiangolo.

Internal

⏪ Temporarily revert "✨ Add support for Pydantic models in Form parameters" to make a checkpoint release. PR #12128 by @tiangolo.
✨ Add support for Pydantic models in Form parameters. PR #12127 by @tiangolo. Reverted to make a checkpoint release with only refactors.

v0.112.3
Compare Source
This release is mainly internal refactors, it shouldn't affect apps using FastAPI in any way. You don't even have to upgrade to this version yet. There are a few bigger releases coming right after. 🚀
Refactors

♻ Refactor internal check_file_field(), rename to ensure_multipart_is_installed() to clarify its purpose. PR #12106 by @tiangolo.
♻ Rename internal create_response_field() to create_model_field() as it's used for more than response models. PR #12103 by @tiangolo.
♻ Refactor and simplify internal data from solve_dependencies() using dataclasses. PR #12100 by @tiangolo.
♻ Refactor and simplify internal analyze_param() to structure data with dataclasses instead of tuple. PR #12099 by @tiangolo.
♻ Refactor and simplify dependencies data structures with dataclasses. PR #12098 by @tiangolo.

Docs

📝 Add External Link: Techniques and applications of SQLAlchemy global filters in FastAPI. PR #12109 by @TheShubhendra.
📝 Add note about time.perf_counter() in middlewares. PR #12095 by @tiangolo.
📝 Tweak middleware code sample time.time() to time.perf_counter(). PR #11957 by @domdent.
🔧 Update sponsors: Coherence. PR #12093 by @tiangolo.
📝 Fix async test example not to trigger DeprecationWarning. PR #12084 by @marcinsulikowski.
📝 Update docs_src/path_params_numeric_validations/tutorial006.py. PR #11478 by @MuhammadAshiqAmeer.
📝 Update comma in docs/en/docs/async.md. PR #12062 by @Alec-Gillis.
📝 Update docs about serving FastAPI: ASGI servers, Docker containers, etc.. PR #12069 by @tiangolo.
📝 Clarify response_class parameter, validations, and returning a response directly. PR #12067 by @tiangolo.
📝 Fix minor typos and issues in the documentation. PR #12063 by @svlandeg.
📝 Add note in Docker docs about ensuring graceful shutdowns and lifespan events with CMD exec form. PR #11960 by @GPla.

Translations

🌐  Add Dutch translation for docs/nl/docs/features.md. PR #12101 by @maxscheijen.
🌐 Add Portuguese translation for docs/pt/docs/advanced/testing-events.md. PR #12108 by @ceb10n.
🌐 Add Portuguese translation for docs/pt/docs/advanced/security/index.md. PR #12114 by @ceb10n.
🌐 Add Dutch translation for docs/nl/docs/index.md. PR #12042 by @svlandeg.
🌐 Update Chinese translation for docs/zh/docs/how-to/index.md. PR #12070 by @synthpop123.

Internal

⬆ [pre-commit.ci] pre-commit autoupdate. PR #12115 by @pre-commit-ci[bot].
⬆ Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1. PR #12120 by @dependabot[bot].
⬆ Bump pillow from 10.3.0 to 10.4.0. PR #12105 by @dependabot[bot].
💚 Set include-hidden-files to True when using the upload-artifact GH action. PR #12118 by @svlandeg.
⬆ Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0. PR #12112 by @dependabot[bot].
🔧 Update sponsors link: Coherence. PR #12097 by @tiangolo.
🔧 Update labeler config to handle sponsorships data. PR #12096 by @tiangolo.
🔧 Update sponsors, remove Kong. PR #12085 by @tiangolo.
⬆ [pre-commit.ci] pre-commit autoupdate. PR #12076 by @pre-commit-ci[bot].
👷 Update latest-changes GitHub Action. PR #12073 by @tiangolo.

googleapis/python-bigquery (google-cloud-bigquery)
v3.26.0
Compare Source
Features

Include LegacyPandasError in init imports (#2014) (3ab5e95)
Use bigquery-magics package for the %%bigquery magic (#1965) (60128a5)

Bug Fixes

Add docfx to the presubmit configuration and delete docs-presubmit (#1995) (bd83cfd)
Add warning when encountering unknown field types  (#1989) (8f5a41d)
Allow protobuf 5.x; require protobuf >=3.20.2; proto-plus >=1.22.3 (#1976) (57bf873)
Do not set job timeout extra property if None (#1987) (edcb79c)
Set pyarrow field nullable to False for a BigQuery field in REPEATED mode (#1999) (5352870)

Dependencies

Bump min version of google-api-core and google-cloud-core to 2.x (#1972) (a958732)

Documentation

Add short mode query sample & test (#1978) (ba61a8a)
Improve QueryJobConfig.destination docstring (#2016) (1b4cca0)

v3.25.0
Compare Source
Features

Add prefer_bqstorage_client option for Connection (#1945) (bfdeb3f)
Support load job option ColumnNameCharacterMap (#1952) (7e522ee)

Bug Fixes

Do not overwrite page_size with max_results when start_index is set (#1956) (7d0fcee)

v3.24.0
Compare Source
Features

Add default timeout for Client.get_job() (#1935) (9fbad76)
Add support for map target type in Parquet options (#1919) (c3f7b23)

Bug Fixes

Create query job in job.result() if doesn't exist (#1944) (8f5b4b7)
Retry is_job_done on ConnectionError (#1930) (4f72723)

Performance Improvements

If page_size or max_results is set on QueryJob.result(), use to download first page of results (#1942) (3e7a48d)

v3.23.1
Compare Source
Performance Improvements

Decrease the threshold in which we use the BQ Storage Read API (#1925) (eaa1a52)

v3.23.0
Compare Source
Features

Adds timer decorator to facilitate debugging (#1917) (ea750e0)
Support insertAll for range (#1909) (74e75e8)

Bug Fixes

Add pyarrow version check for range support (#1914) (a86d7b9)
Edit presubmit for to simplify configuration (#1915) (b739596)

v3.22.0
Compare Source
Features

Support RANGE in queries Part 2: Arrow (#1868) (5251b5d)

v3.21.0
Compare Source
Features

Add compression option ZSTD. (#1890) (5ed9cce)
Adds billing to opentel (#1889) (38697fb)
Support RANGE in queries Part 1: JSON (#1884) (3634405)

Bug Fixes

Add types to DatasetReference constructor (#1601) (bf8861c)
Creates linting-typing.cfg in presubmit (#1881) (c852c15)
Remove duplicate key time_partitioning from Table._PROPERTY_TO_A… (#1898) (82ae908)
Retry query jobs that fail even with ambiguous jobs.getQueryResults REST errors (#1903, #1900) (1367b58)

Performance Improvements

Avoid unnecessary API call in QueryJob.result() when job is already finished (#1900) (1367b58)

v3.20.1
Compare Source
Bug Fixes

Make pyarrow an optional dependency post-3.20.0 yanked release (#1879) (21714e1)

v3.20.0
Compare Source
Features

Add fields parameter to set_iam_policy for consistency with update methods (#1872) (08b1e6f)

Bug Fixes

Correct type checking (#1848) (2660dbd)
Update error logging when converting to pyarrow column fails (#1836) (0ac6e9b)
Updates a number of optional dependencies (#1864) (c2496a1)
Use an allowlist instead of denylist to determine when query_and_wait uses jobs.query API (#1869) (e265db6)

v3.19.0
Compare Source
Features

Support RANGE query parameters (#1827) (b359a9a)
Support range sql (#1807) (86a45c9)

Bug Fixes

Add google-auth as a direct dependency (713ce2c)
Augment universe_domain handling (#1837) (53c2cbf)
deps: Require google-api-core>=1.34.1, >=2.11.0 (713ce2c)
Supplementary fix to env-based universe resolution (#1844) (b818992)
Supplementary fix to env-based universe resolution (#1847) (6dff50f)

v3.18.0
Compare Source
Features

Support nullable boolean and Int64 dtypes in insert_rows_from_dataframe (#1816) (ab0cf4c)
Support slot_ms in QueryPlanEntry (#1831) (d62cabb)

Bug Fixes

Keyword rendering and docstring improvements (#1829) (4dfb920)

Documentation

samples: Updates to urllib3 constraint for Python 3.7 (#1834) (b099c32)
Update client_query_w_named_params.py to use query_and_wait API (#1782) (89dfcb6)

v3.17.2
Compare Source
Bug Fixes

Change load_table_from_json autodetect logic (#1804) (6249032)

Documentation

Update  to use  API (#1781) (81563b0)
Update client_query_destination_table.py sample to use query_and_wait (#1783) (68ebbe1)
Update query_external_sheets_permanent_table.py to use query_and_wait API (#1778) (a7be88a)
Update sample for query_to_arrow to use query_and_wait API (#1776) (dbf10de)
Update the query destination table legacy file to use query_and_wait API (#1775) (ef89f9e)
Update to use query_and_wait in client_query_w_positional_params.py (#1786) (410f71e)
Update to use query_and_wait in samples/client_query_w_timestamp_params.py (#1785) (ba36948)
Update to_geodataframe to use query_and_wait functionality (#1800) (1298594)

v3.17.1
Compare Source
Bug Fixes

Add pyarrow.large_strign to the _ARROW_SCALAR_IDS_TO_BQ map (#1796) (b402a6d)
Retry 'job exceeded rate limits' for DDL queries (#1794) (39f33b2)

v3.17.0
Compare Source
Features

Support universe resolution (#1774) (0b5c1d5)

Bug Fixes

query_and_wait now retains unknown query configuration _properties (#1793) (4ba4342)
Raise ValueError in query_and_wait with wrong job_config type (4ba4342)

Documentation

Remove unused query code sample (#1769) (1f96439)
Update snippets.py to use query_and_wait (#1773) (d90602d)
Update multiple samples to change query to query_and_wait (#1784) (d1161dd)
Update the query with no cache sample to use query_and_wait API (#1770) (955a4cd)
Updates query to query and wait in samples/desktopapp/user_credentials.py (#1787) (89f1299)

v3.16.0
Compare Source
Features

Add table_constraints field to Table model (#1755) (a167f9a)
Support jsonExtension in LoadJobConfig (#1751) (0fd7347)

Bug Fixes

Add detailed message in job error (#1762) (08483fb)

v3.15.0
Compare Source
Features

Support JSON type in insert_rows and as a scalar query parameter (#1757) (02a7d12)
Support RANGE in schema (#1746) (8585747)

Bug Fixes

Deserializing JSON subfields within structs fails (#1742) (0d93073)
Due to upstream change in dataset, updates expected results (#1761) (132c14b)
Load_table_from_dataframe for higher scale decimal (#1703) (b9c8be0)
Updates types-protobuf version for mypy-samples nox session (#1764) (c0de695)

Performance Improvements

DB-API uses more efficient query_and_wait when no job ID is provided (#1747) (d225a94)

v3.14.1
Compare Source
Bug Fixes

Add missing handler for deserializing json value (#1587) (09017a9)

v3.14.0
Compare Source
Features

Add Client.query_and_wait which directly returns a RowIterator of results (#1722) (89a647e)
Add job_id, location, project, and query_id properties on RowIterator (#1733) (494f275)
Add job_timeout_ms to job configuration classes (#1675) (84d64cd)
Add support dataset.max_time_travel_hours (#1683) (f22eff2)
Add support for Dataset.isCaseInsensitive (#1671) (386fa86)
Add support for Python 3.12 (#1736) (3c0976a)
Removed pkg_resources from all test files and moved importlib into pandas extra (#1726) (1f4ebb1)
Support data_governance_type (#1708) (eff365d)

Bug Fixes

load_table_from_dataframe now assumes there may be local null values (#1735) (f05dc69)
Ensure query job retry has longer deadline than API request deadline (#1734) (5573579)
Keep RowIterator.total_rows populated after iteration (#1748) (8482f47)
Move grpc, proto-plus and protobuf packages to extras (#1721) (5ce4d13)

Performance Improvements

Use the first page a results when query(api_method="QUERY") (#1723) (6290517)

v3.13.0
Compare Source
Features

Add Model.transform_columns property (#1661) (5ceed05)
Add support for dataset.default_rounding_mode (#1688) (83bc768)

Bug Fixes

AccessEntry API representation parsing (#1682) (a40d7ae)

Documentation

Remove redundant bigquery_update_table_expiration code sample (#1673) (2dded33)
Revised create_partitioned_table sample (#1447) (40ba859)
Revised relax column mode sample (#1467) (b8c9276)

v3.12.0
Compare Source
Features

Add Dataset.storage_billing_model setter, use client.update_dataset(ds, fields=["storage_billing_model"]) to update (#1643) (5deba50)
Search statistics (#1616) (b930e46)
Widen retry predicate to include ServiceUnavailable (#1641) (3e021a4)

Bug Fixes

Allow storage_billing_model to be explicitly set to None to use project default value (#1665) (514d3e1)
Relax timeout expectations (#1645) (1760e94)
Use isinstance() per E721, unpin flake8 (#1659) (54a7769)

Documentation

Revise update_table_expiration sample (#1457) (03194e0)

googleapis/python-logging (google-cloud-logging)
v2.7.2
Compare Source
Bug Fixes

deps: require protobuf<4.0.0 on v2 branch (#568) (2c6baef)

v2.7.1
Compare Source
2.7.1 (2022-04-06)
Bug Fixes

deps: require google-api-core >= 1.31.5, >= 2.3.2 on v2 release (#501) (0c5d9aa)

googleapis/python-pubsub (google-cloud-pubsub)
v2.23.1
Compare Source
Bug Fixes

Replace asserts with None checks for graceful shutdown (#1244) (ced4f52)

v2.23.0
Compare Source
Features

Add max messages batching for Cloud Storage subscriptions (#1224) (91c89d3)

v2.22.0
Compare Source
Features

Add service_account_email for export subscriptions (ec0cc34)
Add use_topic_schema for Cloud Storage Subscriptions (ec0cc34)

v2.21.5
Compare Source
Bug Fixes

Allow Protobuf 5.x (a369f04)

v2.21.4
Compare Source
Documentation

samples: Add code sample for optimistic subscribe (#1182) (d8e8aa5)

v2.21.3
Compare Source
Bug Fixes

Race condition where future callbacks invoked before client is in paused state (#1145) (d12bac6)
Suppress warnings caused during pytest runs (#1189) (cd51149)
Typecheck errors in samples/snippets/subscriber.py (#1186) (3698450)

v2.21.2
Compare Source
Bug Fixes

Test failures due to grpcio changes (#1178) (086dd46)

v2.21.1
Compare Source
Bug Fixes

Set timeout to infinite for publishing with ordering keys enabled (#1134) (67daf3c)

v2.21.0
Compare Source
Features

Add custom datetime format for Cloud Storage subscriptions (#1131) (4da6744)

v2.20.3
Compare Source
Documentation

samples: Update Region Tags ([#1128](https://redirec

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: uv.lock
Command failed: uv lock --upgrade-package fastapi --upgrade-package google-cloud-bigquery --upgrade-package google-cloud-logging --upgrade-package google-cloud-pubsub --upgrade-package google-cloud-storage --upgrade-package python-dateutil --upgrade-package slack-sdk --upgrade-package strawberry-graphql --upgrade-package uvicorn
Using CPython 3.11.10 interpreter at: /opt/containerbase/tools/python/3.11.10/bin/python
  × No solution found when resolving dependencies:
  ╰─▶ Because all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1, we can
      conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1, we can conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]==2.13.0
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]>=2.13.1,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1, we can
      conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1, we can
      conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]==2.16.0
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]>=2.16.1,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1, we can
      conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1, we can
      conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1, we can
      conclude that all of:
          google-api-core[grpc]==2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and only the following versions of
      google-api-core[grpc] are available:
          google-api-core[grpc]<=2.11.1
          google-api-core[grpc]==2.12.0
          google-api-core[grpc]>=2.13.0,<=2.14.0
          google-api-core[grpc]==2.15.0
          google-api-core[grpc]>=2.16.0,<=2.16.2
          google-api-core[grpc]==2.17.0
          google-api-core[grpc]==2.17.1
          google-api-core[grpc]==2.18.0
          google-api-core[grpc]==2.19.0
          google-api-core[grpc]>=2.19.1,<=2.19.2
          google-api-core[grpc]==2.20.0
      we can conclude that all of:
          google-api-core[grpc]>=2.11.1,<2.19.2
          google-api-core[grpc]>2.19.2,<2.20.0
          google-api-core[grpc]>2.20.0
      depend on grpcio-status>=1.49.1.
      And because all of:
          google-api-core[grpc]==2.19.2
          google-api-core[grpc]==2.20.0
      depend on grpcio-status>=1.49.1 and grpcio-status>=1.49.1,
      we can conclude that google-api-core[grpc]>=2.11.1 depends on
      grpcio-status>=1.49.1. (1)

      Because only the following versions of grpcio-status are available:
          grpcio-status<=1.49.1
          grpcio-status==1.50.0
          grpcio-status>=1.51.0,<=1.51.3
          grpcio-status==1.52.0
          grpcio-status>=1.53.0,<=1.53.2
          grpcio-status>=1.54.0,<=1.54.3
          grpcio-status>=1.55.0,<=1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
          grpcio-status>=1.63.0,<=1.63.2
          grpcio-status>=1.64.0,<=1.64.3
          grpcio-status>=1.65.0,<=1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      and grpcio-status==1.49.1 depends on protobuf>=4.21.3, we can conclude
      that all of:
          grpcio-status>=1.49.1,<1.50.0
          grpcio-status>1.50.0,<1.51.0
          grpcio-status>1.51.3,<1.52.0
          grpcio-status>1.52.0,<1.53.0
          grpcio-status>1.53.2,<1.54.0
          grpcio-status>1.54.3,<1.55.0
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status==1.50.0
          grpcio-status>=1.51.1,<=1.51.3
          grpcio-status>=1.53.0,<=1.53.2
          grpcio-status>=1.54.0,<=1.54.3
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and grpcio-status==1.51.0 was yanked (reason:
      https://github.com/grpc/grpc/issues/31737), we can conclude that all of:
          grpcio-status>=1.49.1,<1.51.1
          grpcio-status>1.51.3,<1.52.0
          grpcio-status>1.52.0,<1.53.0
          grpcio-status>1.53.2,<1.54.0
          grpcio-status>1.54.3,<1.55.0
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.51.1,<=1.51.3
          grpcio-status>=1.53.0,<=1.53.2
          grpcio-status>=1.54.0,<=1.54.3
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.52.0
          grpcio-status>1.52.0,<1.53.0
          grpcio-status>1.53.2,<1.54.0
          grpcio-status>1.54.3,<1.55.0
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because grpcio-status==1.52.0 was yanked (reason:
      https://github.com/grpc/grpc/issues/32306) and all of:
          grpcio-status>=1.53.0,<=1.53.2
          grpcio-status>=1.54.0,<=1.54.3
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6, we can conclude that all of:
          grpcio-status>=1.49.1,<1.53.1
          grpcio-status>1.53.2,<1.54.0
          grpcio-status>1.54.3,<1.55.0
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.53.1,<=1.53.2
          grpcio-status>=1.54.0,<=1.54.3
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.54.0
          grpcio-status>1.54.3,<1.55.0
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.54.0,<=1.54.3
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.54.3
          grpcio-status>1.54.3,<1.55.0
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status==1.54.3
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and grpcio-status==1.55.0 was yanked (reason:
      https://github.com/grpc/grpc/issues/33218), we can conclude that all of:
          grpcio-status>=1.49.1,<1.55.3
          grpcio-status>1.55.3,<1.56.0
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status==1.55.3
          grpcio-status>=1.56.0,<=1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.56.2
          grpcio-status>1.56.2,<1.57.0
          grpcio-status>1.57.0,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status==1.56.2
          grpcio-status==1.57.0
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.58.0
          grpcio-status>1.58.3,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.58.0,<=1.58.3
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.59.0
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.59.0,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.59.3
          grpcio-status>1.59.5,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.59.3,<=1.59.5
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.60.0
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.60.0,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.60.2
          grpcio-status>1.61.3,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.60.2,<=1.61.3
          grpcio-status>=1.62.0,<=1.62.3
      depend on protobuf>=4.21.6 and protobuf>=4.21.6, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.62.0
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because grpcio-status>=1.62.0,<=1.62.3 depends on protobuf>=4.21.6
      and protobuf>=4.21.6, we can conclude that all of:
          grpcio-status>=1.49.1,<1.62.2
          grpcio-status>1.62.3,<1.63.0
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because grpcio-status>=1.62.2,<=1.62.3 depends on protobuf>=4.21.6
      and protobuf>=5.26.1, we can conclude that all of:
          grpcio-status>=1.49.1,<1.62.3
          grpcio-status>1.62.3,<1.63.2
          grpcio-status>1.63.2,<1.64.0
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status==1.63.2
          grpcio-status>=1.64.0,<=1.64.3
          grpcio-status>=1.65.1,<=1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      depend on protobuf>=5.26.1 and protobuf>=5.26.1, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.62.3
          grpcio-status>1.62.3,<1.64.1
          grpcio-status>1.64.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.64.1,<=1.64.3
          grpcio-status>=1.65.1,<=1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      depend on protobuf>=5.26.1 and protobuf>=5.26.1, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.62.3
          grpcio-status>1.62.3,<1.65.0
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because grpcio-status==1.65.0 was yanked (reason:
      https://github.com/grpc/grpc/issues/37178) and all of:
          grpcio-status>=1.65.1,<=1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      depend on protobuf>=5.26.1, we can conclude that all of:
          grpcio-status>=1.49.1,<1.62.3
          grpcio-status>1.62.3,<1.65.2
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status>=1.65.2,<=1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      depend on protobuf>=5.26.1 and protobuf>=5.26.1, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.62.3
          grpcio-status>1.62.3,<1.65.5
          grpcio-status>1.65.5,<1.66.0
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because all of:
          grpcio-status==1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      depend on protobuf>=5.26.1 and protobuf>=5.26.1, we can conclude that
      all of:
          grpcio-status>=1.49.1,<1.62.3
          grpcio-status>1.62.3,<1.66.1
          grpcio-status>1.66.2
      depend on protobuf>=4.21.3.
      And because we know from (1) that google-api-core[grpc]>=2.11.1
      depends on grpcio-status>=1.49.1, we can conclude that protobuf<4.21.3,
      google-api-core[grpc]>=2.11.1,<3.0.0.dev0, all of:
          grpcio-status<1.62.3
          grpcio-status>1.62.3,<1.66.1
          grpcio-status>1.66.1,<1.66.2
          grpcio-status>1.66.2
       are incompatible.
      And because all of:
          grpcio-status>=1.63.0,<=1.63.2
          grpcio-status>=1.64.0,<=1.64.3
          grpcio-status>=1.65.1,<=1.65.5
          grpcio-status>=1.66.0,<=1.66.2
      depend on protobuf>=5.26.1, we can conclude that protobuf<4.21.3,
      google-api-core[grpc]>=2.11.1,<3.0.0.dev0, all of:
          grpcio-status<1.62.3
          grpcio-status>1.62.3,<1.66.2
          grpcio-status>1.66.2
       are incompatible.
      And because grpcio-status==1.62.3 depends on protobuf>=4.21.6 and
      protobuf>=5.26.1, we can conclude that google-api-core[grpc]>=2.11.1
      depends on protobuf>=4.21.3.
      And because google-cloud-logging==2.7.2 depends on
      protobuf<4.0.0.dev0 and google-cloud-bigquery==3.26.0 depends
      on google-api-core[grpc]>=2.11.1, we can conclude that
      google-cloud-bigquery==3.26.0 and google-cloud-logging==2.7.2 are
      incompatible.
      And because your project depends on google-cloud-bigquery==3.26.0
      and google-cloud-logging==2.7.2, we can conclude that your project's
      requirements are unsatisfiable.


Minor: Possibility to strip datafusion error name

Which issue does this PR close?

Closes #.
Rationale for this change
Currently Datafusion wraps the original error message and includes Datafusion name on top of it.
If the original message is My Query Error the user after unwrapping the DataFusionError will receive wrapped message
Execution error: My Query Error or Error during planning: My Query Error, etc. Sometimes it is required to fetch the original message without Datafusion error name.

What changes are included in this PR?
DataFusionError impl expanded and includes the public method strip_error_name which unwraps error into original message

Are these changes tested?

Are there any user-facing changes?

The implementation might not be super elegant though, please share your thoughts and opininions

@andygrove cc


hiding Events from navbar

LGTM; updated this PR to set merge target to phase-4
Thanks @angiejones!

@angiejones There are 6 commits in this PR - is it true that it's only 32017af1e140f2395995a515657c316c536eca40 that we need to satisfy this?

@angiejones There are 6 commits in this PR - is it true that it's only 32017af that we need to satisfy this?

Rebased phase-4 atop latest in main and now this shows one commit as expected.


Sounds manager that deals with playing sounds/which sounds are playing and can fade out/change volume of playing sound.

Done, closing


Feature request: Output file

Hi,
sorry if this is not the appropriate forum, but it would be useful (or rather necessary, really) to add an 'outfile' option to Bayesembler. As it stands, it will write into the same folder from where it is run and always create a statically named file (assembly.gtf). This makes it somewhat frustrating to use it in pipelines or other complex workflows.
/Marc

Hi Lasse, I second this request - thanks.
Colin

Hi Colin,
Thank you for posting - we really appreciate the feedback! We will try to push out a minor update containing an output file option next week. Please do not hesitate to post additional feature requests.
Lasse


Remove labels overwrite functionality

This removes the labels parameter that koji-containerbuild is currently using, so applying this change on a Koji builder would result in failures.
Don't we need to adjust koji-containerbuild first, or else accept the labels parameter and ignore it?

I'll do some additional testing, but k-cb uses the create_build API method
which takes arbitrary keyword arguments. It should simply ignore unknown
ones. Also added a unit test to verify this behavior.
On Fri, Jul 1, 2016, 5:01 AM Tim Waugh<EMAIL_ADDRESS>wrote:

This removes the labels parameter that koji-containerbuild is currently
using, so applying this change on a Koji builder would result in failures.
Don't we need to adjust koji-containerbuild first, or else accept the
labels parameter and ignore it?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/projectatomic/osbs-client/pull/451#issuecomment-229895643,
or mute the thread
https://github.com/notifications/unsubscribe/AFB1Y9_YCqj4pviIGUNFvKBqbc6vAcgFks5qRNd8gaJpZM4JCjj0
.

Oh, good point.

LGTM


Remove redundant icon pixmap dance to fix icon render fuckup.

From this:

To:

LGTM - I needed to cleanup other places that were stripping all the colors from images for the themes - don't understand the point.  Thanks!


pip install --user onedrivesdk : NotADirectoryError: [Errno 20] Not a directory NOTICE.rst

In [63]: pip install --user  onedrivesdk
Collecting onedrivesdk
Using cached https://files.pythonhosted.org/packages/b3/76/9a3fe5b36079f5c40b33c89ad6f7737e3b8609010a80c9ed24d762ddb93e/onedrivesdk-2.0.tar.gz
ERROR: Complete output from command python setup.py egg_info:
ERROR: Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-kwl8twtt/onedrivesdk/setup.py", line 9, in
with open(NOTICE, 'r', encoding='utf-8') as f:
NotADirectoryError: [Errno 20] Not a directory: '/tmp/pip-install-kwl8twtt/onedrivesdk/setup.py/../NOTICE.rst'
----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-kwl8twtt/onedrivesdk/
Note: you may need to restart the kernel to use updated packages.

yeah I am also having the same issue? you got a fix?

You can try pip install onedrivesdk-fork ... a fork we built to deal with some of the issues we were having.   Also, we merged in some of the bugfixes people have posted.

If you want to install this repo try: pip install https://github.com/OneDrive/onedrive-sdk-python/archive/master.zip This may work.

@QGB I would update the title to pip install NotADirectoryError: [Errno 20] Not a directory NOTICE.rst I got the exact same error except for the kernel warning. I think that is particular to your environment.
Here is my output:
> pip3 install --user onedrivesdk
Collecting onedrivesdk
  Downloading https://files.pythonhosted.org/packages/b3/76/9a3fe5b36079f5c40b33c89ad6f7737e3b8609010a80c9ed24d762ddb93e/onedrivesdk-2.0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-z7qf9zc1/onedrivesdk/setup.py", line 9, in <module>
        with open(NOTICE, 'r', encoding='utf-8') as f:
    NotADirectoryError: [Errno 20] Not a directory: '/tmp/pip-install-z7qf9zc1/onedrivesdk/setup.py/../NOTICE.rst'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-z7qf9zc1/onedrivesdk/

Same error than @rvernica here. I tried installing onedrivesdk-fork, but I haven't managed to make it work with onedrived thus far (which is what I'm trying to install). I'd really like to get a fix :/

If you want to install this repo try: pip install https://github.com/OneDrive/onedrive-sdk-python/archive/master.zip This may work.

this worked for me ! many thanks !

@QGB Is this fixed enough? There are many installation problems.

If you want to install this repo try: pip install https://github.com/OneDrive/onedrive-sdk-python/archive/master.zip This may work.

this worked for me ! many thanks !

This work for me too

@rolandolindberg I think it's better to use `pip3 install git+https://github.com/OneDrive/onedrive-sdk-python.git``` instead, Github is made for Git.

I have this issue too. I'm surprised this bug still exists over 6 months after it was first reported.

@utkarshdalal this repo isn't maintained anymore, as you can see. As for proof:

Latest commit: December 1st, 2016
Latest merged PR: Dec 1, 2016

Top 4 contributors by commits:

@cdmayer, 50 commits. Last activity (whole GitHub): Nov 10, 2016
@D4N14L, 31 commits. Last activity (whole GitHub): May 13, 2020
@wiktorn, 10 commits. Last activity (whole GitHub): May 30, 2020
@mimisasouvanh, 5 commits. Last activity (whole GitHub): May 13, 2020

I've made a PR and @mimisasouvanh did say she'd poke around to see if anybody could own it, but so far she hasn't gotten back.
As for the future of onedrivesdk-python, I'd recommend everyone move to onedrivesdk-fork. As for the future of this issue, it's under @QGB's control since they opened it, and as far as I'm concerned as long as the bug still happens it's a valid issue.
Please, help tidy this repository. Don't lose hope.

Thank you for reaching out and for your patience. This SDK is being officially deprecated. See #209 for more information


Change links in @misk/components NavSidebarComponent from ahref ->

fixed in @misk/components^0.0.15


forceRevalidate should have option or default to override debounce

I am running in a situation where it would be extremely useful to use debouncing for initial gets but once mutate is called id like to override the debounce with forceRevalidate: true
Any thoughts?

Could you just point the settings to a ref and then update them accordingly as needed?
Otherwise, I'd need you to provide a simple reproduction code sandbox, etc.


Add vendor files for go build

Since now we have go modules build, it would nice to also include vendor/ for the go build.
generated by go mod vendor.

Relates to https://github.com/Homebrew/homebrew-core/pull/45619

Thanks for this.
FYI, I also modified the build scripts to only use the vendored modules. I don't know if you use these scripts as part of your packaging process, but they're available if you need them.
Side note: thanks for your work maintaining the Homebrew formula as well!

👍

Side note: thanks for your work maintaining the Homebrew formula as well!

My pleasure :smi'

build scripts change looks good!


Resend Request in Personal device not working

Scenario:
Go to Manage Backup screen > Select level2 Primary key > Personal Device > Do not scan QR at receiving end > Go to Friends and Family Screen > Select Personal Device > Click Resend Request

Verified this issue on dev app v1.9.5(337)


[feature request] - Output - "prompts from files or text box" format

I always test new models with some of my previous generations or from samples I have collected from other model creators. That would usually be drag into png info and send to txt2img, generate and then get the next one, and over. Or use your tool, and copy paste the text. As the collection grew I have started now to use prompts from files or text box and add the full string.
I thought it could be a very cool addition to be able to output or send to clipboard the metadata in the correct format.
Example:
Typical data:
A red balloon Negative prompt: deformed, drawing, monochrome
Steps: 20, Sampler: Euler a, CFG scale: 7.5, Seed: 123400012, Size: 512x512, Model hash: <some number>, Model: <model name>

Required to drive script:
--prompt "A red balloon" --negative_prompt "deformed, drawing, monochrome" --steps 20 --cfg_scale 7.5 --sampler_name "Euler a"" --seed 123400012 --width 512 --height 512
See here for references:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/248
Recently when putting a big file together I got all kinds of errors, It was due to leaving : or forgetting a closing quote or leaving a comma between steps and cfg for example. I started using regular expressions in notepad++ to make it more reliable but if we could get that straight from the prompt reader that would be cool.
Might be way too much but I thought it might be a cool enhancement request.

This is so cool! I never knew webui had this kind of functionality!
Would a drop down menu option like EXPORT or CLEAR be acceptable to you (which means you need to click twice for each image).
I plan to add custom configuration and batch processing in the next major update so that you can change the default format of COPY to this format, or even export multiple image data to a single file in this format (hopefully). But since I need to wait for the authors of the libraries I'm using to fix something, I'm not sure how long this will take.

There’s actually a script for txt2img as well as a script for img2img, which allow you to do batch processing using your existing images as input, with checkboxes for what information you want to recycle or default to current settings. The scripts also allow add/remove params from the prompts.
txt2img script
https://github.com/thundaga/SD-webui-txt2img-script
img2img script
https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/4938#discussioncomment-4211878
Note that when using the img2img script do not choose an output directory, let it go to default location, otherwise the output will have no metadata

@creeduk This feature has been added in version 1.3.2, try it out.

Awesome, sorry I have been away, it was great to login and check messages and find that this looked useful to you. I also did not know about t for a long time but after wanting to find faster ways to test and digging through old posts I stumbled on it :)
looking fwd to trying this out. I have made countless mutations by not getting the exact format right (missing a dash or leaving a attribute name wrong.) so this could be a huge time save.

Let me know if there's any problem about it.

Worked great, used it to extract all my prompts!


Tegular Expression to block .com

i want to block all .com websites and want to access just the websites in the allowed websites list.
Butreg expression is not working

Simply add com or any other TLD to your blocked list.


[RDBMS] az postgres flexible-server create/update/restore/replica: Postgres flex byok

Related command
az postgres flexible-server create --key key --identity identity
az postgres flexible-server update --key key --identity identity
az postgres flexible-server restore --key key --identity identity
az postgres flexible-server replica --key key --identity identity
Description
This PR enables data encryption for PostgreSQL flexible server with customer-managed identity and customer-managed key.

Add arguments --key and --identity for create and update server.
We can only update key/identity to a server that has data encryption enabled at create time, we can't enable it after.
When creating a replica or restoring, we can specify key and identity, independent on data encryption status on primary server.

Testing Guide
See _helptext_pg.py and updated tests.
History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

RDBMS


Adjust paragraph-based modifications

The following RichTextComponent set operations now use a shared paragraph setter, which will simplify things moving forward.
For now, setting these properties work when text is not selected, or if a single paragraph is selected. If multiple paragraphs are selected, only the first one is affected due to the lineRange check.
We should fix this before the 1.0 release @DominikBucher12

https://github.com/danielsaidi/RichTextKit/pull/147 🎉

Let's fix this after 1.0.


Sampling fixes

This PR fixes a sampling error where the sequence ends up on the wrong device as well as when generating without retrieved chunks.

@ncoop57 great! thank you Nathan! 👍


ControllerConfiguration itemStore seems ignored

When using something like
@ControllerConfiguration(itemStore = MyStore.class)

context.getControllerConfiguration().getItemStore() is empty.

The issue seems to be that itemStore is tracked by DefaultResourceConfiguration, but the quarkus layer is using configuration interfaces which do not include the itemStore.
cc @csviri

This is actually not well designed at the JOSDK level either because it's not even possible to use the default implementations that are provided from the @ControllerConfiguration annotation either (as this would require a no-arg constructor on the implementation classes, which they don't provide) so this probably needs to be addressed in JOSDK, first.

When using annotations it is limited in that regard yes ATM. If there is no default constructor simple the override can be used atm

Thank you for the quick fix @metacosm
Hopefully the next version we align to will contain this.


More option to Handle Notification permission

Showing the notification permission at the start is to basic
Actually on IOS the notification permission modal is showing on the start but in some case we want to show it after some event or a custom page or ask again
Add some function and options
It will helpfull if we can have more interaction with it like OneSignal
import OneSignal from 'react-native-onesignal';

// OneSignal Initialization
OneSignal.setAppId(ONESIGNAL_APP_ID);

// promptForPushNotificationsWithUserResponse will show the native iOS or Android notification permission prompt.
// We recommend removing the following code and instead using an In-App Message to prompt for notification permission (See step 8)

OneSignal.promptForPushNotificationsWithUserResponse();

//Method for handling notifications received while app in foreground
OneSignal.setNotificationWillShowInForegroundHandler(notificationReceivedEvent => {
  console.log("OneSignal: notification will show in foreground:", notificationReceivedEvent);
  let notification = notificationReceivedEvent.getNotification();
  console.log("notification: ", notification);
  const data = notification.additionalData
  console.log("additionalData: ", data);
  // Complete with null means don't show a notification.
  notificationReceivedEvent.complete(notification);
});

//Method for handling notifications opened
OneSignal.setNotificationOpenedHandler(notification => {
  console.log("OneSignal: notification opened:", notification);
});

Thank you

Hi @MatiasLjubica
Thank you for the feature request, I appreciate it. I am creating a FR ticket internally so that someone from our team can work on it and add this feature into our package.
Feel free to add more points to this request, anytime !

Hi. @ami-aman is this fixed? Very big deal not to be able to control when the notification permission shows up.

Hi @makan-amini
Our team is already working on this feature. We hope to release it soon !

Do you have a timeline @ami-aman ? We waiting for this as well

@superphil0 - We've been stalled for 3 months on Customer.io problems and new ones popped up all the time. We switched to Iterable on Feb 1 and area already up and running with no issues. Strongly recommend switching away from Customer.io asap.

Hello all, I'm Matt, the Director of Mobile Engineering at Customer.io, and I want to step in here and acknowledge that the difficulties that Makan and his developer experienced when integrating this SDK weren't up to our standard.  We're continuing to improve our SDKs every day and appreciate the patience and support of the developer community through issues like this.
The good news is that not only is this issue well underway, but we are in the final stage of development, where we validate our changes to ensure a successful release. This is a top priority, and is on track to be released next week. I'm also always available at<EMAIL_ADDRESS>or reach out through GitHub or our Support team and they'll be sure to connect us.

You have been in "final stage of development" since Thanksgiving.

Happy Friday everyone. I'm back to let you know that this functionality is unlocked and live in the new 2.2.0 release! To use this, please check out that new version and follow along with the updated documentation for setting up push notifications.
Feel free to let us know if you have any additional feedback, but otherwise, I'll close this request out as complete.

Thanks team, can this new SDK work with the Expo plugin ?

I have a new PR ready with the required changes

@MatiasLjubica You might have noticed this already, but that PR that @xtreem88 mentioned did turn into a release of the Expo plugin, which we hope helps you and others out. If you've got anything else we can look at, feel free to reach out.
Have a great weekend!

Thanks @xtreem88  and @matt-frizzell


TaxonomyPicker initialValues prop requires too many props.

Category
[x] Enhancement
[ ] Bug
[x] Question
Version
Please specify what version of the library you are using: [ 1.7  ]
Expected / Desired Behavior / Question
The initialValues TaxonomyPicker property expects
key: The ID of the term
name: The name of the term
path: The path of the term
termSet: The Id of the parent TermSet of the term
As far as I understand, only the key is required so why are all these properties expected?
Since the component does not check for the validity of the values, you could pass anything to the path (and why wouldn't you, the documentation does not mention whether the path is absolute or relative, what the delimiter is, what format the values are and which api can be used to retrieve this data). This could become a problem if someone passing in the (unbeknown to them) incorrect information, has their component break in a future update where the TaxonomyPicker starts validating the input.
Maybe it is better if a completely different interface was created for the initialValues prop which only expects and requires the termId. The termId must be the only value this component relies on as end users can rename or move terms. If there was such an interface, a developer would be assured that the component won't, at some indeterminate point in time, start using the path to retrieve the term (I'm sure that won't happen but I think it is better to be explicit).
Observed Behavior
Once I supply the correct key, I could put in a bogus path and name. The "incorrect" name will be displayed as the default value in the text box (but not in the taxonomy tree if you click on the tag, where the ticked label will be displayed correctly).

I join issue.  From the item field value we get only two values (Label and ID), and for initialization values in the control we need to get additional data, which in fact is not needed ... Will there be any progress on this issue?


moved schema folder out of auth in modules

@atharva29 why did you delete the gitignore file?

By mistake,  i will add that

I will correct it


some weapon abilities not working?

After I updated the mod, the weapon abilites has stopped working, it might be because of conflicts from other mods, but rn I do not know what is causing it. I noticed that it was mainly the weapons with active(?) abilities (ones that you right click for). However the leviathan axe worked fine.
video of this issue: https://streamable.com/7t4o46

If you're using Wizards (RPG Series), then you have to blacklist Soulslike Weaponry in Wizards (RPG Series)'s config, or at least the weapons not working.

You have to blacklist weapons from this mod in Wizards (RPG Series)'s config, namely Spell Enginge's. I'll see what I can do about implementing a permanent fix. To do it, go to the config folder, then into "spell_engine" and open the "server" file in notepad or vscode or any editing software. Look after "blacklist_spell_casting_regex" and type in "soulsweapons" in the empty " " space. That should do the trick.

this fixed it! thanks


Localization throwing System.Resources.MissingManifestResourceException since RC2

I have created a simple console app here: https://github.com/GarageWeb/ResourceTest  to demonstrate the issue.

Moving to home

I'm not sure why you move this to home repo?!! while it related to localization. BTW I will have a look to the sample soon, but I need to know did you run it from the console or VS?

What I have seen that the project doesn't use the localization APIs that's shipped with ASP.NET Core, you are using the resource class that created in VS, i'm not sure either this repo or home repo suited for this issue
/cc @Eilon

I run the app and I got the same exception whenever I moved the resource file to sub folder. I'm not sure the exact reason, again I don't find any package that using ASP.NET Core!! probably the issue may related to .NET Core, hopefully to hear from other folks about the exact reason for this bug

OK, I re-opened it here. I just had someone say I should file it on Home. Just FYI, this works as expected if the resx files are at the root and not in a sub-folder. Thanks

Yep I already test it, but as I mentioned before this may related to .NET Core, because I never see any reference to ASP.NET Core packages

@GarageWeb How did you create this Resource? It was created incorrectly, in Resource.Designer.cs L41 it should say "TestApp.Resources.Resource" instead of "TestApp.Resource"

I can also reproduce that Problem with Resources in ProjectRoot/Resources/SharedResources.en.resx
Also the factory produces different results for the BaseName, if the Default Namespace of your Project is not in sync with the Project Name.

I've logged a similar issue here: https://github.com/dotnet/cli/issues/3234
It doesn't appear to be ASP.NET specific.

Came across this on SO. Was scanning the project,json schema without any luck to try and mimic the accepted solution.

@BrennanConroy you are right about line 41, if I add the subfolder name into it, it works. Only issue is, as soon as you update any resource key/value, the designer file is regenerated and the subfolder is removed from the string.

Looks like a tooling issue then?

@BrennanConroy yeah sounds like it. Can we get a new bug logged in https://github.com/aspnet/Tooling/issues/?

https://github.com/aspnet/Tooling/issues/532


Use downloaded binaries instead of checking-in Neovim binaries

Will be holding off on this change until the 0.2.1 release, and then wiring it up. It'll be great to get these checked-in binaries out of the repo (and keep it from showing as language VimL in github 😄 ).
This will address both #326 and #123 . Later, we might want a forked Neovim so that we can add a GUI flag (or experiment with a web assembly build).

Need to incorporate & test Linux support here, too.


build: Update dependencies on @fluentui/react-components

Also migrates off of lingering usages of /unstable APIs, allowing us to move to a ^ dependency, instead of a ~.

Investigating the broken test