Brownie issue

I have followed all the install guidelines diligently but when I try to type brownie --version it gives me the error message seen above. I believe this may have something to do with the pathing but any assistance that I could get regarding this issue would be greatly appreciated

I had this same issue did you install using pipx or pip ? If you installed using pip like I did you might have to set brownie to your $PATH variable in bash or zsh. Once installed to $PATH you'll be able to type the above command without issue.

Hey WillStansil, I was running into this issue as well because I am on Windows. I recommend going through this guide: https://medium.com/@cromewar/how-to-setup-windows-10-11-for-smart-contract-development-and-brownie-e7d8d13555b3 .
It walks you through how to install and use Linux on your windows machine, and it fixes pretty much all of these file path issues!

Hey oliveruf42, I was installing Brownie through pip, i am not able to see this PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0 file in package folder
or
I have to add this PATH  "C:\Users\userName\AppData\Roaming\Python\Python39\Scripts"

@Nagesh2189 downgrade your python version to 3.10


RedisSessionInterface: Flask context not popped on Redis issues

Redis exceptions on open_session make Flask crash painfully, not popping the context correctly (leaking data across requests).
Flask doesn't catch any possible exceptions on the session_interface, resulting in messing up the context.
To reproduce

Set some parameter in flask.g
Initiate RedisSessionInterface on an invalid redis server (redis.exceptions.ConnectionError or any other, we had sometimes Timeout exceptions).
The next requests contains the old flask.g - context not popped

Fix
Ideally Flask uses its interfaces safely - always popping context. Bug created: https://github.com/pallets/flask/issues/2517
Still, I think it would be nice that Flask-Session is safe as well, catching possible redis problems and not letting Flask deal with the exceptions.
Environment
Python version: 2.7.6
Flask version: 0.10.1
Werkzeug version: 0.11.11
Flask-Session: 0.3.1

The heart of this issue is fixed in flask https://github.com/pallets/flask/pull/2254.
Regarding handling in flask-session, I think it is better to use SESSION_REDIS = Redis(host='localhost', port=6379, retry=retry, retry_on_error=[BusyLoadingError, ConnectionError, TimeoutError])


Cannot mount Super Smash Bros. Special Demo Version (eShop Demo)

When I try to mount Super Smash Bros. Special eShop demo (USA) as a decrypted 3DS file (MD5: 8E18F555182E42B524DBA8A6FC9C5462), I always get this error.

Failed to mount ExeFS: InvalidExeFSError: Failed to convert name, probably not a valid ExeFS
Failed to mount RomFS: InvalidRomFSHeaderError: Length in RomFS Lv3 header is not 0x28

Other archive viewing software like Toolbox opens it fine. Any advice?

Does GodMode9 handle it correctly? My first thought is that the crypto flags in the NCCH header were not fixed, which happens when using legacy (i.e. ancient) decrypt tools.

It probably should, testing rn

GM9 outputs

invalid directory object

when trying to navigate to exefs or romfs directory.


[Feature Request] Allow to specify a debounce delay prop on select component when the remote prop is set to true

Existing Component
Yes
Component Name
select
Description
In the select component, once the remote prop is set to true, the debounce delay is forced at 300ms
This prevents to use a custom delay or even to handle delay at an other level in the component that uses the select component
This is how it is set in the select.vue :
https://github.com/ElemeFE/element/blob/dev/packages/select/src/select.vue#L201
debounce() {
    return this.remote ? 300 : 0;
},

We can imagine having a prop like debouncedDelay that will be used only when the remote prop is set tu true like so :
debounce() {
    return this.remote ? this.debounceDelay || 300 : 0;
},

I'll be pleased to submit a PR if needed.

@mcastagnetti  please give a scene for this feature request


Color definitions should be using :highlight default

Currently, nord-vim uses the bare :hi command to set up highlight colors, but it should be using :hi def.
From Vim documentation: https://vimhelp.appspot.com/syntax.txt.html#%3Ahighlight-default.
This will make it easier for users to customize coloring.
Right now, any custom modifications must be placed after the :color nord command in the .vimrc file and calling :color nord again erases those modifications.

Yes, this should definitely be changed to now override custom definitions.
Thanks, I'll implement it next weekend :smile:

I have to revoke my previous statement because I've misunderstood your problem.
If you'd like to override specific syntax highlighting you can make use of vim's autocmd.
Example on how to override Nord's CSS class name color with red:
autocmd ColorScheme * highlight cssClassName ctermfg=red

If you'd like to override multiple definitions you can create a augroup for it:
augroup nord-overrides
  autocmd!
  autocmd ColorScheme * highlight cssClassName ctermfg=blue
  autocmd ColorScheme * highlight cssPseudoClass ctermfg=yellow
augroup END

Note that these changes will always override every color theme even if you set :colorscheme nord or any other colorscheme!

You're right, this can be done using autocommands, I forgot about them. Still, is there any particular reason you don't want to use the default option? Most of the colorschemes I've seen do it.
(Also, technically you could use autocmd ColorScheme nord ... instead of ifs, since in this case the pattern is matched against the colorscheme name)

The autocmd ColorScheme nord command is indeed the best and cleanest solution for this 👍
I've read some StackOverflow threads and old Vim mailing lists and I think I've understand the way the default keyword works.
The link to the Vim documentation you posted above describes that the default keyword is especially used for syntax files:

Using [default] is especially useful to overrule the highlighting of a
specific syntax file [...]

The flow should be the following:
A syntax file links the groups it contains to the base groups with the default keyword added to let Vim know that this should be the default group for this syntax to colorize the new filetype except  if a colorscheme sets them differently.
The colorscheme should not set a group of a syntax file, which are both exists to fulfill different purposes, but override the default value of it.
I've checked almost over 20 of the most popular and advanced themes like

solarized
gruvbox
molokai
...
and none of them uses the default / def keyword.
I think the reason for it is clear:
As soon as a colorscheme uses the default keyword its rules will be overriden by the syntax file because it takes precedence.
I've tested it with Nord by adding the def shorthand and the syntax highlighting broke since it has been overriden by the rules of the syntax file.

As you can see on the screenshot the only intact colors are the ones from the lightline plugin since there is of course no syntax file for it.
In summary the default keyword is used for a different feature of Vim, but colorschemes should not use it.
About your test with the autocmd:
It works fine for me with the highlight command without the !, but you have to make sure that the augroup is placed after the colorscheme nord line!
Finally I just want to let you know that I'm happy for every improvement suggestion, but in this case I don't see any improvement for the theme. If users want to override specific groups of the theme they can create a augroup with autocmd ColorScheme nord commands which can be nicely done for other colorschemes too, maybe I'll add a small guide to the wiki as help resource.
Anyway, it would be nice to hear why you'd like to add the default keyword to Nord even if there is a clean and simple solution to define overrides for colorschemes?

Okay, I can see I've goofed in this case.
The reason I proposed using default is for ease of overriding. I've dabbled in overriding some colors in my configuration in the past, and with the plugins using default it just worked: put highlight ... somewhere where it was loaded and that was it. I thought it would be good if users could avoid needing to think about whether ! is needed or where exactly the autocommands should be put.
I've also seen plugins use hi def outside of syntax files, which is why I though it's something you're just supposed to do when writing a plugin, but I failed to noticed that in all cases they were defining new syntax groups, while colorschemes always just override existing ones. Your test proves I was looking at this the wrong way.
You can consider this issue closed.


Fixes string inputs from breaking plugin

This parses string input for the startTime and endTime variables to prevent silently breaking the plugin.

This is a fix for issue #25

Thank you @DanielWare
I cannot accept this request since it seems come from a fork. Please, rebase from this project's master and push again.


Request with npm package

I'm trying to use the npm package "woocommerce-api" a few days ago and am having a problem where the "signature" of the request is invalid.
I first thought that ember was changing the key before making the request, but then a friend informed me that browserify is who handles this package because it is imported using "npm: woocommerce-api".
I tested the package in several frameworks like vue, react, electron and etc, and even using postman, and it works perfectly. It just does not work when I try to use ember.
I have already checked and compared the generator request parameters for the chrome and postman "network" tab, and both look the same except for the "signature" and some other parameters that are changed in all requests such as timestamp.
Nothing seems very different but I still get the "invalid signature" error of the npm package
The Postman Request

The chrome network tab

Nothing seems very different but I still get the "invalid signature" error in the npm package.

The Woocommerce Package
A example of usage

Nothing in ember-browserify is likely to interfere with the way this library signs its requests. My first guess is that there's a bug somewhere in your app that's causing you to get different keys than you think you're getting.
That said, I think you should check with the authors of the woocommerce-api package to see if they really intend it to run in the browser. It's authored for node and it handles authentication data, so you may be violating their security assumptions and opening your app up to vulnerabilities.


zsh-forgit: 22.11.0 -> 22.12.0

Description of changes
Update zsh-forgit to the latest version.
Previously this was just a single file, but now it calls a helper script, rather than calling fzf and git directly. The helper script sets "SHELL=/bin/bash", so we have to replace that, but for git and fzf I used wrapProgram, to avoid breaking strings like "forgit" which can be displayed to the user.

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1532

@offborg build zsh-forgit

@ofborg build zsh-forgit


Turnpike/f1 fee distribution

Closes: #XXX
Description

Following changes are made in this PR:

F1 Distribution implementation, basic key features:

Period

time duration in which bonded stakes remain constant

CurrentReward

represents current rewards and current period for a gauge

HistoricalReward

represents historical rewards for a gauge. Accumulated reward ratio is the sum from the zeroth period until current period of (rewards/stakes)

give reward for unlocking locks more precisely

Fix bug with people during unbonding periods still get rewards

Allow Partial Unlockings per Lock

if requested coins for unlock is less than that of previous unlock
new period lock with requested coin amount is generated and begin unlock

For contributor use:

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

Closing in favor of #750


Make archiving available for individual accounts (USER)

When we worked on the archive feature, we decided to not make it available for individual accounts.
I don't see reasons today to not allow that.

@znarf What activities should be prevented from archived user account?

@flickz same as other types of accounts

we'd have to check the userId in the expense table (expense table uses userId not collectiveId) and remove the email from the userID table.

@piamancini I'm not clear on this

Not clear for me either.

Sorry:
When you archive a USER collective you need to ensure there are no expenses filed for that user. The expense table doesn't use the collectiveID of the user, it uses the UserID of that user.
So you'll need to check that the userID of that collectiveId doesn't pending expenses in the expense table. (you should check for paid expenses, but once the expense is PAID we generate transactions in the transaction table with the user CollectiveId)
Pending expenses are only registered in the expense table.
The second thing that needs to be done is invalidate the email of the user in the user Table. If you just mark it as deletedAt, the system won't let the user create a new profile with that email address in the future.

@piamancini Are you talking about deleting or archiving?
Archiving is for accounts that we can't delete, especially the one with orders and expenses.

deleting. A user with a filed expense - pending - won't have any transactions yet. I'm assuming we are ok with deleting a pending expense?

This issue is about archiving not deleting.
But we can still double check the behavior for deleting.

I find the help text for these features really confusing. I am trying to add the new features in the advanced section to the docs but I can't explain them. Seems related to this to I'm posting it here @znarf
Here's what I see:

As an individual user, it doesn't make any sense to me that my account has a balance on it and can't be archived. Where do I see this balance? How do I get rid of it?
Also it doesn't make sense to tell users below that they can't delete but can archive their account, but then not allow them to archive it.

@alannallama I don't understand the non-empty balance, I'll check.
You're right for the other sentence. The second part should be optional, based on availability.


Support for adding tags would be fantastic, current PDFs are not accessibly by default.

http://www.w3.org/TR/2014/NOTE-WCAG20-TECHS-20140408/pdf.html

+1.
Is this currently a planned feature?

+1

Any activity here?

Not so far. The maintainers of this project currently don't have time to implement new features. We will merge pull requests from the community, though.


fix:Update to use [:upper:] [:lower:] to support accents and foreign alphabets

…alphabets
Update to use [:upper:] [:lower:] to support accents and foreign alphabets. The output from lsb_release most likely never produce non-ASCII characters but as a matter of best practice I propose to change it.

In fact, on a second thought, all the build VMs we use today to build the agent comes with English by default. So this change might be a noop.

The integration tests passed before:

Merging

This change is a no-op; everyone else seems to assume that /etc/lsb-release will contain ASCII data (in fact, the Python implementation uses the ascii codec for everything: https://lists.debian.org/debian-lsb/2012/06/msg00000.html).


paging-calculator: update to 0.2.0

Description of changes
Update my package paging-calculator to version 0.2.0 plus fix the description. It contained a copy&paste error.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Ping @SuperSandro2000 - No update in a few weeks on this MR. Could you have a look, please?

Only a week, thats short :)


WIP do not merge - debugging CI

red
https://github.com/joernio/joern/actions/runs/5657931145/job/15328119429?pr=3234#step:4:12500


enable_history_search conflicts with completion

Hi, when I enable this feature, it works, but then my completer stops working.  I'd like to use both of them:
enable_history_search=True,

I'm using the completer from:
./examples/regular-language.py

If you happen to read this, is there an example to do a non-regular language? ;)

Btw, latest pptk on Windows 7 and Linux (Wily).

this would also be a great 2.0 feature :-)

Yes, I'm not sure what's the right way to both support history search and the up/down arrows for completion. Maybe Ctrl-N and Ctrl-P for completions (which already works), and arrows for history search.
Non-regular language support won't be added as part of prompt_toolkit itself. Even the regular-language module comes with some performance pitfalls in some edge cases making me wonder whether it should stay part of prompt_toolkit itself.

Hi @jonathanslenders
Can I check if there are any completions on the current cursor position?
I'm thinking using the arrow keys for completions only when there are completions available, and using arrow keys for history search when there are no compiletions.

Hi @jonathanslenders
Can I check if there are any completions on the current cursor position?
I'm thinking using the arrow keys for completions only when there are completions available, and using arrow keys for history search when there are no compiletions.

I just found that I can use ctrl + P for part history suggestion, forgive the last comment.


HttpRequest.sendGet is deprecated

Need to take care of this deprecation at following places:

In class "AzureActiveDirectory", method "performCloudDiscovery"
In class "OpenIdProviderConfigurationClient", method "loadOpenIdProviderConfiguration"

Package of HttpRequest: com.microsoft.identity.common.internal.net

ADO Tracking Info (corpnet reqd):

https://identitydivision.visualstudio.com/Engineering/_workitems/edit/1226170


⚠ Bofrost.es has degraded performance

In 186d904, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1549 ms

Resolved: Bofrost.es performance has improved in dd5d47d after 6 minutes.


No streamer category when the notification appears.

Describe the bug
In chrome when the notification appears it says the streamer category in firefox does not appear.
Expected behavior
When the notification appears tell which game he is playing.
Screenshots

Here, for example, it was supposed to show that he was on VALORANT.
Desktop (please complete the following information):

OS: Windows 11
Browser Firefox
Version 106

Also happening for me. To me it's honestly more important most of the time to see what game the streamer is playing than the stream title, hopefully this can be fixed.
OS: Windows 10
Browser: Edge
Version: 1.16.0

Seems like either your browser is using something else than the Chromium notification's UI, which strips the context message where the category name is displayed.
Anyway, I tinkered for a bit on a way to make notifications compliant on all browsers by moving the game name to the title section and the stream title to the message section (cf screenshot below). If that sounds good to you, I'll release this change as soon as possible.

Sounds good to me! I'm not sure why it randomly broke around when the original message was posted (October sometime)
From what you said I'm assuming it works in chrome? but it's broken in Edge and presumably in Firefox as well since that's what @Mioni was using when he created the issue. Would love full functionality back but if that's not feasible then your fix should be good. Also, would it be possible to add a setting to toggle your proposed change if people prefer it the other way round.
Thanks for the quick response 😄


Corner case when shifting +1 months Jan 29

Hello,
This is a corner case, and I'm not sure there's a workaround for it, but I'd still like to know your thoughts about it.
Today is Jan 29th 2017. This year, February has 28 days. When adding +1 months to Jan 29, the result is Feb 28, but Timex.diff reports 0 months of difference.
So when doing this:
iex(1)> {:ok, d1} = Timex.parse "Sun, 29 Jan 2017 Etc/UTC", "%a, %d %b %Y %Z", :strftime
{:ok, #<DateTime(2017-01-29T00:00:00Z Etc/UTC)>}
iex(2)> d2 = Timex.shift d1, months: 1
#<DateTime(2017-02-28T00:00:00Z Etc/UTC)>
iex(7)> Timex.diff d1, d2, :months
0

The result seems to be inconsistent. We're adding +1 months through the API but later on we have a diff of 0 months.
What are your thoughts?
Thanks in advance.
Best regards,

Indeed this did seem to be wrong - unfortunately I did a poor job of documenting the old diffing algorithm for months, so it's not clear to me why it was the way it was, but I've resorted to a simpler algorithm which will do a naive integer division of the diff in days by 30 (we have to make an assumption about the length of a month, and 30 is a reasonable average). I believe the old algorithm attempted to be more accurate, but clearly had a flaw handling that edge case, so I've thrown it out in favor of the simpler implementation.

Thank you very much @bitwalker 👍


If the structured data contains nested lists, the response time increases exponentially as the size of these lists grows

Summary:
We have noticed a significant delay in the response time when generating structured weather data with a List[DailyForecast] and List[HourlyForecast]. The time taken for the request grows almost exponentially as the number of forecast days increases.
This issue arises when generating structured data, where WeatherData contains a forecasts field with a list of DailyForecast objects, and each DailyForecast contains a list of HourlyForecast objects.

Issue Description:
When running the code to fetch weather data, the number_of_days (which controls how many days of forecasts are requested) directly impacts the time taken to generate the structured data. As the number of days increases, the time taken grows exponentially. Here is the summary of iterations:

number_of_days
time_taken

1
7.96 sec

2
10.74 sec

3
18.33 sec

4
28.58 sec

Full Sample Output:

2024-12-16 09:48:25,697 - PydanticAI version: 0.0.12
2024-12-16 09:48:25,697 - OpenAI version: 1.57.2
2024-12-16 09:48:25,697 -
Running the agent for 1 day(s) of forecast :

LogfireNotConfiguredWarning:

No logs or spans will be created until `logfire.configure()` has been called. Set the environment variable LOGFIRE_IGNORE_NO_CONFIG=1 or add ignore_no_config=true in pyproject.toml to suppress this warning.

2024-12-16 09:48:26,823 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:26,841 - Getting lat and lng for Buffalo and Country US
2024-12-16 09:48:28,332 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:28,337 - Getting weather for Buffalo in United States with temperature unit C
2024-12-16 09:48:28,337 - Thoughts: User is asking for current weather
2024-12-16 09:48:33,649 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:33,654 - Time taken for 1 day(s): 7.96 seconds
2024-12-16 09:48:33,654 - Response: {
  "City": "Buffalo",
  "Current Temperature": "8.1\u00b0 C",
  "Forecast Days": 1
}
2024-12-16 09:48:33,654 -
Running the agent for 2 day(s) of forcast :
2024-12-16 09:48:34,656 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:34,659 - Getting lat and lng for Buffalo and Country US
2024-12-16 09:48:38,342 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:38,346 - Getting weather for Buffalo in United States with temperature unit C
2024-12-16 09:48:38,346 - Thoughts: Please provide the current weather information.
2024-12-16 09:48:44,385 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:44,390 - Time taken for 2 day(s): 10.74 seconds
2024-12-16 09:48:44,391 - Response: {
  "City": "Buffalo",
  "Current Temperature": "30.2\u00b0 C",
  "Forecast Days": 2
}
2024-12-16 09:48:44,391 -
Running the agent for 3 day(s) of forcast :
2024-12-16 09:48:45,407 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:45,411 - Getting lat and lng for Buffalo and Country US
2024-12-16 09:48:47,093 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:48:47,103 - Getting weather for Buffalo in United States with temperature unit C
2024-12-16 09:48:47,103 - Thoughts: Please provide the latest weather data for Buffalo.
2024-12-16 09:49:02,716 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:49:02,722 - Time taken for 3 day(s): 18.33 seconds
2024-12-16 09:49:02,722 - Response: {
  "City": "Buffalo",
  "Current Temperature": "28.7\u00b0 C",
  "Forecast Days": 3
}
2024-12-16 09:49:02,722 -
Running the agent for 4 day(s) of forcast :
2024-12-16 09:49:03,815 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:49:03,819 - Getting lat and lng for Buffalo and Country US
2024-12-16 09:49:05,687 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:49:05,692 - Getting weather for Buffalo in United States with temperature unit C
2024-12-16 09:49:05,692 - Thoughts: What's the current weather?
2024-12-16 09:49:31,289 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-16 09:49:31,300 - Time taken for 4 day(s): 28.58 seconds
2024-12-16 09:49:31,300 - Response: {
  "City": "Buffalo",
  "Current Temperature": "20.6\u00b0 C",
  "Forecast Days": 4
}

Summary of iterations:
   number_of_days  time_taken
0               1    7.956691
1               2   10.736448
2               3   18.330979
3               4   28.577719

Process finished with exit code 0

Possible Causes:
We are unsure whether the delay is due to OpenAI’s structured data or the tool calling process. However, we suspect that OpenAI's handling of larger structured data may be the bottleneck. As the data size grows, particularly with nested lists like HourlyForecast within DailyForecast, the response time increases dramatically.
Expected Behavior:
The agent should not experience exponential delays when the number_of_days increases. The response time should remain consistent, even if the data complexity increases due to nested structures.
Environment Details:

Pydantic AI version: 0.0.12
OpenAI version: 1.57.2
Python version: 3.10.x
OS: macOS

Code:
from __future__ import annotations as _annotations

import asyncio
import json
import logging
import random
import time
import uuid
from dataclasses import dataclass
from datetime import datetime, timedelta
from typing import Any, List, Optional, Literal

import dotenv
import openai
import pandas as pd
import pydantic_ai
from httpx import AsyncClient
from pydantic import BaseModel
from pydantic import Field
from pydantic_ai import Agent, ModelRetry

# Set up logging configuration
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(message)s',  # This adds the timestamp to each log message
    handlers=[logging.StreamHandler()]  # This ensures logs are shown in the console
)

# Example usage
logger = logging.getLogger(__name__)

# load env
dotenv.load_dotenv()

# 'if-token-present' means nothing will be sent (and the example will work) if you don't have logfire configured
# logfire.configure()

class HourlyForecast(BaseModel):
    time: str  # Formatted time (e.g., "12:00 PM")
    temperature: float  # Temperature in the chosen unit
    description: str  # Weather description
    emoji: str  # Emoji representing the weather kind

class DailyForecast(BaseModel):
    date: str  # Formatted date (e.g., "Monday, December 11, 2024")
    average_temperature: float  # Average temperature for the day
    hourly_forecasts: List[HourlyForecast]  # List of hourly forecasts

class WeatherData(BaseModel):
    city: str = Field(..., description="City for which the weather data is retrieved")
    current_temperature: float = Field(..., description="Current temperature in the chosen unit")
    temp_unit: str = Field(..., description="Temperature unit (C or F)")
    latitude: Optional[float] = Field(None, description="Latitude of the city")
    longitude: Optional[float] = Field(None, description="Longitude of the city")
    forecasts: List[DailyForecast] = Field(..., description="List of daily forecasts")
    country: Optional[str] = Field(None, description="Country of the city")
    region: Optional[str] = Field(None, description="Region of the city")
    unknown_city: Optional[bool] = Field(None, description="True if the city is unknown")
    reason: Optional[str] = Field(None, description="Reason for the unknown city")
    country_emoji: Optional[str] = Field(None, description="Emoji representing the country's flag")

    def model_dump_json(self, indent=2):
        # Prepare a minimal summary of the data
        summary = {
            "City": self.city,
            "Current Temperature": f"{self.current_temperature}° {self.temp_unit}",
            "Forecast Days": len(self.forecasts) if self.forecasts else 0,
        }

        # Convert the summary to a JSON string with indentation
        return json.dumps(summary, indent=indent)

@dataclass
class Deps:
    client: AsyncClient
    conversation_id: uuid.UUID = None
    number_of_days: int = 3

weather_agent = Agent(
    'openai:gpt-4o-mini',
system_prompt=(
    "For example: if the user asks 'Is it cloudy in Sydney?', and it is or will be cloudy, respond with 'Yes, it's cloudy'; otherwise, say 'No'. "
    "IMPORTANT: If the user is asking for the weather in a specific city or country,  "
    "If the user provides just a city name without a specific question,  "
    "NEVER use your own knowledge of the world weather data as it might be outdated, and it was collected during your training. "
    "Always use the provided tools to fetch the latest weather data. DO NOT rely on your internal knowledge for weather-related responses; always use the tools provided to fetch the most up-to-date information."
    )
    ,
    deps_type=Deps,
    retries=2,
    result_type=WeatherData,
    result_retries=2,
)

async def get_weather_call(city_name: str, country_name: str | None, temp_unit_c_or_f: str , number_of_days : int ) -> WeatherData:
    """Get the weather information for a given city."""
    forecasts = []
    current_date = datetime.now()
    for _ in range(number_of_days):
        daily_forecast = DailyForecast(
            date=current_date.strftime("%A, %B %d, %Y"),
            average_temperature=round(random.uniform(-10, 35), 1),
            hourly_forecasts=[
                HourlyForecast(
                    time=(current_date + timedelta(hours=i)).strftime("%I:%M %p"),
                    temperature=round(random.uniform(-10, 35), 1),
                    description=random.choice(["Sunny", "Cloudy", "Rainy", "Snowy"]),
                    emoji=random.choice(["☀", "☁", "🌧", "❄"])
                )
                for i in range(8)
            ]
        )
        forecasts.append(daily_forecast)
        current_date += timedelta(days=1)

    weather_ret_data = WeatherData(
        city=city_name,
        current_temperature=round(random.uniform(-10, 35), 1),
        temp_unit=temp_unit_c_or_f,
        forecasts=forecasts,
        country=country_name,
        region="New York",
        country_emoji="🇺🇸"
    )
    return weather_ret_data

@weather_agent.tool_plain
async def get_lat_lng(city_name: str , iso_3166_alpha_2_country_name: str | None) -> dict[str, Any]:
    """Get the latitude and longitude of a given city."""
    logger.info(f"Getting lat and lng for {city_name} and Country {iso_3166_alpha_2_country_name}")
    try:
        # fake lat and lang
        lat = random.uniform(-90, 90)
        lng = random.uniform(-180, 180)
        return {'lat' : lat, 'lang': lng}
    except Exception as e:
        logger.error(f'Error getting lat and lng: {e}', exc_info=True)
        raise ModelRetry('Could not find the location')

# temperature_unit_celsius_or_fahrenheit = 'C' or 'F'

@weather_agent.tool
async def getweather(
    ctx: pydantic_ai.RunContext[Deps],
    city_name: str,
    country_name: str | None,
    temperature_unit_celsius_or_fahrenheit: Literal['C', 'F'],
    latitude: str,
    longitude: str,
    thoughts: str
) -> str:
    """Get the weather data for a given city."""
    user_asked_for_days = ctx.deps.number_of_days
    logger.info(f"Getting weather for {city_name} in {country_name} with temperature unit {temperature_unit_celsius_or_fahrenheit}")
    # print thoughts
    logger.info(f"Thoughts: {thoughts}")
    # Await the cached result of get_weather_call
    weather = await get_weather_call(city_name, country_name, temperature_unit_celsius_or_fahrenheit, user_asked_for_days)

    ret_data = WeatherData(
        city=city_name,
        forecasts=weather.forecasts,
        current_temperature=weather.current_temperature,
        temp_unit=temperature_unit_celsius_or_fahrenheit,
        country=weather.country,
        region=weather.region,
        latitude=float(latitude),
        longitude=float(longitude),
    )
    #    debug(ret_data)
    return ret_data

async def main():
    async with AsyncClient() as client:
        # Print pydanticai and OpneAI version
        logger.info(f"PydanticAI version: {pydantic_ai.__version__}")
        logger.info(f"OpenAI version: {openai.__version__}")
        dotenv.load_dotenv()
        # List to store the data for each iteration
        results = []

        # Loop to run the agent for 4 different number_of_days values
        for number_of_days in range(1, 5):
            logger.info(f"\nRunning the agent for {number_of_days} day(s) of forcast :")
            conversation_id = uuid.uuid4()
            deps = Deps(
                client=client,
                conversation_id=conversation_id,
                number_of_days=number_of_days
            )

            start_time = time.time()

            # Run the agent to get the weather data
            result = await weather_agent.run(
                'What is the weather like in Buffalo?', deps=deps
            )

            end_time = time.time()

            # Calculate time taken and store the iteration data
            time_taken = end_time - start_time
            results.append({'number_of_days': number_of_days, 'time_taken': time_taken})

            # Print the result (Weather Data) from the agent
            logger.info(f"Time taken for {number_of_days} day(s): {time_taken:.2f} seconds")
            logger.info('Response: %s', result.data.model_dump_json(indent=2))

        # Convert the results list to a pandas DataFrame for a nice table
        df = pd.DataFrame(results)

        # Display the table at the end
        print("\nSummary of iterations:")
        print(df)

if __name__ == '__main__':
    asyncio.run(main())

can you show some timings on what is slow? Either manually or a screenshot of a logfire trace.
If it's just OpenAI that's slow, there's not much PydanticAI can do about that.

@samuelcolvin,
As highlighted in the [OpenAI article on Structured Outputs](https://openai.com/index/introducing-structured-outputs-in-the-api/), it’s mentioned that the first API response with a new schema can take up to 10 seconds. In my use case, where the model is called twice to build a nested structure, this results in a latency of over 20 seconds per request, which is not ideal for real-time applications.
This latency seems to be a known issue, but for anyone building serious applications with Structured Responses in LLM, this delay can be a significant bottleneck.
How do you envision handling this latency with valid structured data for real-time use cases? Do you expect this delay to improve over time, or should we reconsider using structured data in scenarios that require fast responses?

Additional Info:
Sfstructured data in performance-critical applications, and any guidance on improving this would be greatly appreciated.
https://openai.com/index/introducing-structured-outputs-in-the-api/
Limitations and restrictions
There are a few limitations to keep in mind when using Structured Outputs:

Structured Outputs allows only a subset of JSON Schema, detailed in our docs(opens in a new window). This helps us ensure the best possible performance.

The first API response with a new schema will incur additional latency, but subsequent responses will be fast with no latency penalty. This is because during the first request, we process the schema as indicated above and then cache these artifacts for fast reuse later on. Typical schemas take under 10 seconds to process on the first request, but more complex schemas may take up to a minute.

@samuelcolvin - Here is the log fire output you wanted - I just ran to 3 day forecast ( list of 3 elements with hourly data )
2024-12-17 20:15:40,900 - PydanticAI version: 0.0.13
2024-12-17 20:15:40,900 - OpenAI version: 1.57.2
2024-12-17 20:15:40,900 -
Running the agent for 3 day(s) of forcast :
04:15:40.901 weather_agent run prompt=What is the weather like in Buffalo?
04:15:40.901   preparing model and tools run_step=1
04:15:40.901   model request
2024-12-17 20:15:48,387 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-17 20:15:48,403 - Getting lat and lng for Buffalo and Country US
04:15:48.402   handle model response
04:15:48.402     running tools=['get_lat_lng']
04:15:48.403   preparing model and tools run_step=2
04:15:48.404   model request
2024-12-17 20:15:49,727 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-12-17 20:15:49,733 - Getting weather for Buffalo in United States with temperature unit C
2024-12-17 20:15:49,733 - Thoughts: Fetching current weather data for Buffalo.
04:15:49.731   handle model response
04:15:49.732     running tools=['getweather']
04:15:49.736   preparing model and tools run_step=3
04:15:49.737   model request
2024-12-17 20:16:04,649 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
04:16:04.667   handle model response
04:16:04.671   preparing model and tools run_step=4
04:16:04.672   model request
2024-12-17 20:16:22,247 - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
04:16:22.252   handle model response
2024-12-17 20:16:22,261 - Time taken for 3 day(s): 41.36 seconds
2024-12-17 20:16:22,261 - Response: {
  "City": "Buffalo",
  "Current Temperature": "26.4\u00b0 C",
  "Forecast Days": 3
}

Summary of iterations:
   number_of_days  time_taken
0               3   41.360618

Also, the logfire console output is below.


abort in onResouceRequest

Hi all,
I want to abort some ads resource on request but cannot call the abort() function.
Error: TypeError: Object # has no method 'abort'
Can someone give me an example that how to do it in page.onResourceRequested or do I miss understand something ?

IMHO you can install your handler in phantom namespace via setFn, and have access to .abort there.
Can we close this?

Closing - timed out. Seems nobody really need this. Use setFn if needed.

This is not working with Phantomjs 2. Could you provide an example?

@puzrin The problem is that when running via setFn, the request.abort() is available, however the function isn't actually executed when a resource is requested, so it's kind of useless.

@shawncreed it worth to create new issue with details, this one is outdated IMHO.


Video conference mute cannot be enabled despite run as admin

Microsoft PowerToys version
0.59.0
Running as admin

[X] Yes

Area(s) with issue?
Video Conference Mute
Steps to reproduce
Run as admin. Try to enable video conference mute.
✔ Expected Behavior
Video conference mute can be switched on.
❌ Actual Behavior
Video conference mute cannot be switched on. Switch is disabled, message states that execution as admin is required.
Other Software
No response

I have this problem with PT version 0.59. See attached screenshots.

1

Confirming that I'm experiencing the same issue. Was setting up on a new Microsoft Surface (i.e. clean device and OS settings) and could not enable video conference mute. A few extra steps that I did that might be different than others' flow:

Installed PowerToys
Launched in a 'Standard User' Windows account
Restarted PowerToys as Administrator (i.e. authenticated, etc.)
Went to Video Conference Mute and could not enable.

My screenshots are identical to @greogory 's above, but I'm in version 0.60.0.

Having the same issue (version 0.60.1).
Toggle to turn off/on stays grey, even though I restart Powertoys in admin mode.
Windows 10.0.19044 Build 19044

Having the same issue, version 0.61.1, in Admin mode. Video Conference Mute is enabled, and on/off toggle is disabled, with "You need to run as administrator to modify these settings" message.

Having the same issue, version 0.61.1, in Admin mode. Video Conference Mute is Enabled/On, and on/off toggle is disabled, with "You need to run as administrator to modify these settings" message. UPDATE: I run PowerToys as Admin using a different Administrator account than my primary user account (which is not admin). Since each user account has its own AppData\Local folder for PowerToys, I thought there might be a conflict between settings.json between them. I updated the AppData\Local\Microsoft\PowerToys\settings.json file in both user folders and set "Video Conference":false for both, and restarted PowerToys as admin (using the admin user account). The on/off toggle is disabled, but Video Conference Mute is now Disabled/Off.

THIS is that easy! Thanks! Nice workaround! I can confirm that editing the file enables the function without having to use elevated user rights.
As to the issue:
I also have the EXACT behavior! Using a corporate device the daily-driver-user has no admin-rights. However for installation-propose there is an admin-user:
Login in as admin user: works, but only while running powertoys "as administrator"
Login in as daily-user:
does not work with user rights
does not work with running as admin-user
does not work with running as admin-user with admin-rights

So my main question: WHY WHY WHY does this have to run with admin-rights at all? It was working before with no admin-rights.
At least, please add an option to enable it by default for all user!
win10 19044.1826
PT: 0.61.1

Having the same issue, version 0.61.1, in Admin mode. Video Conference Mute is Enabled/On, and on/off toggle is disabled, with "You need to run as administrator to modify these settings" message. UPDATE: I run PowerToys as Admin using a different Administrator account than my primary user account (which is not admin). Since each user account has its own AppData\Local folder for PowerToys, I thought there might be a conflict between settings.json between them. I updated the AppData\Local\Microsoft\PowerToys\settings.json file in both user folders and set "Video Conference":false for both, and restarted PowerToys as admin (using the admin user account). The on/off toggle is disabled, but Video Conference Mute is now Disabled/Off.

Thank you Joe,
I was looking for that exact workaround, but for the way around. I did not want to use this feature and I couldn't disable it.
I simply edited the file and relaunched PT. It did it.
Thanks !

Thanks for the feedback but VCM is moving to maintenance only in the 0.67 timeframe. Our team will only directly address critical bugs, security and accessibility issues.
We'll accept community PRs for enhancements.


use eqResize without using data-eq-pts?

I'd like to listen for the eqResize event without add the data-eq-pts attribute.
Is there a way to manually enable the eq size listener on a given element from JS?

Up?

There are two ways of assigning element queries: data-eq-pts or through CSS. There is no pure JavaScript constructor.

On Dec 8, 2015, at 7:51 AM, Fez Vrasta<EMAIL_ADDRESS>wrote:
I'd like to listen for the eqResize event without add the data-eq-pts attribute.
Is there a way to manually enable the eq size listener on a given element from JS?
—
Reply to this email directly or view it on GitHub.

Any chance to get this feature?


feat!: python pydantic follows v2

Description

The Pydantic preset should follow the v2 guidelines which is the latest version. This PR makes sure Modelina follows the Pydantic v2 guidelines: https://docs.pydantic.dev/2.6/migration/ by using description for the schema descriptions instead of alias.
Related Issue

Checklist

[x] The code follows the project's coding standards and is properly linted (npm run lint).
[x] Tests have been added or updated to cover the changes.
[x] Documentation has been updated to reflect the changes.
[x] All tests pass successfully locally.(npm run test).

Additional Notes

/rtm


Add HA keypad for opener

Based on https://github.com/technyon/nuki_hub/commit/11f43c64b489585a588ac96e1d1996894460cffb by @technyon
Closes #298

@technyon: Can we merge this? Has been reported in #298 as solved with this.


What is the recommended approach?

So you are clearly telling us not to use Microsoft Graph Security Connector, but what are the alternatives?  Surely a list of options of what to migrate to would be helpful to readers of this page?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 6c3291b5-08aa-d48f-b7d3-aba6175ff3e5
Version Independent ID: 3ad1ab75-5c37-e524-e6f6-a619ba0d1b85
Content: Power Query Microsoft Graph Security connector - Power Query
Content Source: powerquery-docs/connectors/microsoft-graph-security.md
Service: powerquery
GitHub Login: @bezhan-msft
Microsoft Alias: bezhan

There's a page here that probably has the advice. We can link to it more clearly.
https://learn.microsoft.com/en-us/power-query/connecting-to-graph

Hi @tasranson
Thanks for your feedback! The link discussed above was added to the Microsoft Graph Security connector article sometime last year. Therefore I'm closing this issue as fixed. #please-close


Review

Please review, @Komposthaufen

In the File OSESM_assignment_1.py  3 functions are implemented:
(description of functions as provided by author)

scale_min_max() # function to scale data between 0 and 1: x_ = (x - x_min) / (x_max - x_min)
invert_scale_min_max() # function to invert scale transformation between 0 and 1 to get the original data
check_return_datatype() # function to check and return the input datatype. Used in scale and invert scale function

Tests

[x] License exists
[x] Create a fork and start a pull-request
[x] Pytests fails as expected
[x] Ruff linter fails as expected

Submission of second homework assignment, @danielhuppmann


Resolve #431

Types of Changes
What types of changes does your PR introduce? Put an x in all boxes that apply

[ ] New addition to list
[ ] Fixing bug in existing item in list
[ ] Removing item from list
[x] Changing structure (organization) of list

Proposed Changes
Generally, if an awesome list contains items from this repo then the items are removed and vice versa, exceptions:

QuickLook plugins - some items aren't in the list but still removed from this repo because in that repo they were removed with a good explanation
command line tools - didn't do any comparisons or changes because of structural differences, we need to think how to perform the merge
markdown tool - the same structural differences

Future candidates for externalizing: mongo, mysql, postgre, zsh
Possible improvements: find or create another nice but less bulky icon
PR Checklist
Put an x in the boxes once you've completed each step. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING guide
[x] I have explained why this PR is important
[x] I have added necessary documentation (if appropriate)

Further Comments

find or create another nice but less bulky icon

Agreed. This is a great start for now. Merging.

Nice work!

👍


table  filters is not showing properly if table height is less or data is less

full drop down height is not displayed if data is less

Try to give sufficient fixed height to grid container always in order to work with vx grid efficiently.

Use at least 50vh height for the tables.

but as per requirement we need container height to be auto

Okay, we will caculate on runtime and apply the height. Look out here to be kept updated.


chore: bdd-spring-1581934024 to 0.0.1

chore: Promote bdd-spring-1581934024 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Adds classes and dimensions to shortcode arguments

Recently made use of this plugin but I needed to add classes and dimensions on a per icon basis for the shortcode to allow for responsive sizing without having to wrap a responsive container around each SVG.
Previously wrapping element around the shortcode to achieve the desired result worked but in certain instances was causing FOUC and CLS.
Previously:

{% heroicon "solid", "check" %}

Now:
{% heroicon "solid", "arrow-sm-left", "", "h-6 mr-1 w-6", "24" %}
The only potentially confusing part now is the need to include the empty string for the alt attribute, certainly welcome an improvement here to make it clearer. If this change is out of scope for your roadmap just disregard.

Hey! I like the idea of adding the ability to customize more about the markup, but I'm hesitant to add more ordered parameters. What do you think of a params object?
{% heroicon "outline", "check", { alt: "", className: "h-6 mr-1 w-6", width: 24 } %}

That is a great idea Sean. If the new params object is an attributes map that would make it really extensible.
{% heroicon "outline", "check", { aria-hidden: "true", class: "h-6 mr-1 w-6", width: 24, x-show: "open" } %}

Oo, I like the ability to add Alpine attributes! I might block some attributes like aria-hidden and aria-label since the library handles that with the alt parameter, but everything else should be fair game.
If you're interested in trying to implement the params object, you are more than welcome! If not, I will put something together in the coming days.

This would be a nice addition :)

Uh oh! Me putting something together in the "coming days" turned into... forgetting. 😬
Thanks for the bump @flortsch!

@andrewdisley @flortsch I have opened #5 if either of you have time for a review.

@SeanMcP Finally got around to reviewing #5 and updating our usage and all is working as expected.
#5 is spot on and supersedes the need for #4 - closing.


feature request: [define:[vlan,netmask,gateway,vcpu,mem,disksize,netboot], return: MACaddress]

Hi,
First off, I've decided to learn golang after seeing what you did for terraform-provider-xenserver.
But I'm a few weeks off before i can do something useful in this arena.
In the meantime, can you extend the go-xen-api-client and terraform-provider-xenserver to include:
Initially Define:

vlan,netmask,gateway,
vcpu, disksize, mem(static probably easier)
bootorder (netboot)

Return:

MAC address

This in conjunciton with ansible will make an awesome combination.

Hi,
I'm currently working on extending functionality of terraform-xenserver-provider. Currently implemented:

VCPU
CPU topology
static and dynamic memory limits
boot order
interface assignment (network, mtu, device order and mac address)

Work in progress:

Attach existing disks and CDs
Create new disks (via new resource type xenserver_disk)
Create storage repositories
VM installation
Create network and VLAN
Attach PCI

After all work will be finished I will create a pull request.
@jamesliulondon I would be very grateful if you can spend some time and test current state so I can fix possible existing bugs. Thanks!

@mborodin how can i help out :smile:, seems like you got a fair bit of it covered.


[3.x] Add WebSocketMultiplayerPeer incoming_packets check bound

Fix for #46096.
Code for reproduction
func _ready():
	var q_WebSocketServer : WebSocketServer = WebSocketServer.new()
	q_WebSocketServer.listen(2222, PoolStringArray([]), true)
	q_WebSocketServer.get_var(false) # now here is no crash

Also, PR should be done against master and then cherry-picked (a separate PR is fine too, but the master PR must be merged first).


Shortcut for switching mode

I'd like to switch modes by shortcut.
For example:

⌘⇧P: Plain text
⌘⇧M: Markdown preview
⌘⇧D: Drawing

Thanks for the idea. I added the shortcuts with the lates update, but I set ⌘⇧T for Plain text (I don't even recall why not P).

@buddax2 Great! Thank you 😄


Added Leaf Nodes in BST in C-Plus-Plus

Fixes #2570

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Counts the number of leaf nodes in a binary search tree
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#2570

@HarshCasper , @bhav09 , @siddharth25pandey , Kindly review the PR


M29361,29403,29404: Clarification at line 23

Hello, @sptramer,
Translator has reported possible source content issue.
"Linguist comment: grammatically wrong sentence. Could you please clarify?"
Please review the comment tag added and reply with explanation if fix is needed or not. If you make related fix in another PR then share your PR number so we can confirm and close this PR.
Many thanks in advance.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azurermps-6.6.0/release-notes-azureps.md
:white_check_mark:Succeeded
View (azurermps-6.6.0)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Added a new clarification request at line 28

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azurermps-6.6.0/release-notes-azureps.md
:white_check_mark:Succeeded
View (azurermps-6.6.0)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azurermps-6.6.0/release-notes-azureps.md
:white_check_mark:Succeeded
View (azurermps-6.6.0)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Thanks @sptramer
#sign-off


Element components

Hello,
the function _read_components() in rst.py reads the Ansys components from the rst file. These are then saved in self.geometry.
Are only the node components loaded?
How can I load the element components?
Thank you!
Regards
Francesco

My bad. All components appear to be imported, independently if node or elements. (Workbench had somehow not exported the components).
It would be interesting to add the type of the component to the output structure.
If I find a way to do it, I will try to upload.


mc mirror fail to copy from Google Cloud Storage, content-length is invalid

Description
When trying mc mirror google/staging minion/staging it results:
0 B / 899.71 KB | 0.00%
mc: <ERROR> Failed to copy ‘https://storage.googleapis.com/staging/assets/application-199c56b842436f85c4f60b4b03f8d067.css’. Content-Length is invalid. Please report this issue at https://github.com/minio/minio-go/issues.
mc: <ERROR> Session safely terminated. To resume session ‘mc session resume abcdefgh’

It stops in the first file ( this one  ) even when trying to resume.
I "reduced" the original bucket name for clarity purposes ( the original is trustvox-core-staging-assets instead of staging ).
Minio version
Version: 2016-10-14T04:00:39Z
Release-Tag: RELEASE.2016-10-14T04-00-39Z
Commit-ID: 8c59a4166865e65192e91986e8bee329851bbf7c
mc version
Version: 2016-10-07T01:56:22Z
Release-tag: RELEASE.2016-10-07T01-56-22Z
Commit-id: 75d55783c01c9849055f76cca146390d2d5df631
OS
Ubuntu Server 16.04.1
(updated and upgraded today)

Looks like the problem is because Google Cloud doesn't set 'Content-Length' header.
# curl --head https://storage.googleapis.com/trustvox-core-staging-assets/assets/application-199c56b842436f85c4f60b4b03f8d067.css
HTTP/1.1 200 OK
X-GUploader-UploadID: AEnB2UqKtpVlqx3C7gp07LFNUYnQWzBCkodakJNYKLZheifsuUjqJknN1VswFMDir-wi8e2eYT-I2tMbh4_eDpLOB9b7lSRwBQ
Date: Sat, 15 Oct 2016 07:06:08 GMT
Cache-Control: public, max-age=31557600
Expires: Sun, 15 Oct 2017 07:06:08 GMT
Last-Modified: Thu, 07 Jan 2016 13:30:47 GMT
ETag: W/"4c4830946dc6a8ae6ec70594631a0e48"
x-goog-generation:<PHONE_NUMBER>816000
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 17000
Content-Type: text/css
x-goog-hash: crc32c=cDzWqA==
x-goog-hash: md5=TEgwlG3GqK5uxwWUYxoOSA==
x-goog-storage-class: STANDARD
Vary: Accept-Encoding
Warning: 214 UploadServer gunzipped
Server: UploadServer
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Transfer-Encoding: chunked

x-goog-stored-content-length: 17000

This is an incompatible header and not part of S3 protocol. Can you enable S3 frontend and use that @paulocoghi ?

I already have enabled and generated an Access Key along with its secret, it in Storage Settings > Interoperability.
This issue occurred connecting to my buckets using this "interoperable" (S3?) mode. Is there another step to ensure S3 frontend/mode to my Google Cloud Storage?

Also I added the google host to mc config host add with https://storage.googleapis.com compatible endpoint.
But I dont know to specify mc to use AWS signature identifier.

The result of mc --debug ls google
mc: <DEBUG> GET / HTTP/1.1
Host: storage.googleapis.com
User-Agent: Minio (linux; amd64) minio-go/2.0.1 mc/2016-10-07T01:56:22Z
Authorization: AWS **REDACTED**:**REDACTED**
Date: Sat, 15 Oct 2016 17:35:01 GMT
Accept-Encoding: gzip

mc: <DEBUG> HTTP/2.0 200 OK
Content-Length: 560
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Cache-Control: private, max-age=0
Content-Type: application/xml; charset=UTF-8
Date: Sat, 15 Oct 2016 17:35:02 GMT
Expires: Sat, 15 Oct 2016 17:35:02 GMT
Server: UploadServer
X-Guploader-Uploadid: AEnB2UrMSCInv45ZNiZJiqeX-BuafNmeQ0nMDmZNM2Pl3tzcaB-pGlCYCDkfftGaWFwSoprKkp7uf6fvNt708iASn5vx-j8TIQ

mc: <DEBUG> Response Time:  799.813198ms

mc: <DEBUG> GET / HTTP/1.1
Host: storage.googleapis.com
User-Agent: Minio (linux; amd64) minio-go/2.0.1 mc/2016-10-07T01:56:22Z
Authorization: AWS **REDACTED**:**REDACTED**
Date: Sat, 15 Oct 2016 17:35:02 GMT
Accept-Encoding: gzip

mc: <DEBUG> HTTP/2.0 200 OK
Content-Length: 560
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Cache-Control: private, max-age=0
Content-Type: application/xml; charset=UTF-8
Date: Sat, 15 Oct 2016 17:35:02 GMT
Expires: Sat, 15 Oct 2016 17:35:02 GMT
Server: UploadServer
X-Guploader-Uploadid: AEnB2Upoa8es4S710QdyExyx-xdiij8TEHQrE8MxzwUAkfB4DmQddfdpLoW3vK_bWkAiaK6uCAz-kQX44qX8G6K0ug_sCbnhCA

mc: <DEBUG> Response Time:  321.219629ms

This issue occurred using this interoperable key. Is there another step to ensure S3 frontend/mode to my Google Cloud Storage?

This looks like GCS has changed the way it replies Content-Length for GET operation we have to handle this by not looking for Content-Length header when Transfer-Encoding is chunke, we are expecting Content-Length to be set since S3 does set this value.
We will fix it.

@paulocoghi looks like 'GCS' is setting the 'Content-Length' properly now. Can you check if mc works properly.
curl --head https://storage.googleapis.com/trustvox-core-staging-assets/assets/application-199c56b842436f85c4f60b4b03f8d067.css

HTTP/1.1 200 OK
X-GUploader-UploadID: AEnB2UrnBWzneTQw4D41T7l392kkZPk0YOqYjjTxtZoT0acitSSn35QCkCJgqLyA-qIBzpi3Ko0PfFTYhaJeHp4XzIsu4iNn-g
Date: Sat, 22 Oct 2016 22:37:05 GMT
Expires: Sun, 22 Oct 2017 22:37:05 GMT
Last-Modified: Thu, 07 Jan 2016 13:30:47 GMT
ETag: W/"4c4830946dc6a8ae6ec70594631a0e48"
x-goog-generation:<PHONE_NUMBER>816000
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 17000
Content-Type: text/css
x-goog-hash: crc32c=cDzWqA==
x-goog-hash: md5=TEgwlG3GqK5uxwWUYxoOSA==
x-goog-storage-class: STANDARD
Vary: Accept-Encoding
Warning: 214 UploadServer gunzipped
Content-Length: 102518
Server: UploadServer
Cache-Control: public, max-age=31557600
Age: 51
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"

It would seem like there was a bug in GCS service HEAD since then they seemed to have fixed it.

Actually spoke too soon the response is inconsistent.
$ curl --head https://storage.googleapis.com/trustvox-core-staging-assets/assets/application-199c56b842436f85c4f60b4b03f8d067.css
HTTP/1.1 200 OK
X-GUploader-UploadID: AEnB2UqTIdB0PopQ1vHZTJ2HFQwnspwJz05gnXd2VlvL-Di7QjwEbvaWYtFKlF4wG67aaKlmYQFbwpm0KXp7UDE_qbZ2Vtfa9A
Date: Sat, 22 Oct 2016 22:40:19 GMT
Cache-Control: public, max-age=31557600
Expires: Sun, 22 Oct 2017 22:40:19 GMT
Last-Modified: Thu, 07 Jan 2016 13:30:47 GMT
ETag: W/"4c4830946dc6a8ae6ec70594631a0e48"
x-goog-generation:<PHONE_NUMBER>816000
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 17000
Content-Type: text/css
x-goog-hash: crc32c=cDzWqA==
x-goog-hash: md5=TEgwlG3GqK5uxwWUYxoOSA==
x-goog-storage-class: STANDARD
Vary: Accept-Encoding
Warning: 214 UploadServer gunzipped
Server: UploadServer
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Transfer-Encoding: chunked

$ diff -pruN test1 test2
--- test1	2016-10-22 15:49:51.593802681 -0700
+++ test2	2016-10-22 15:49:58.605897727 -0700
@@ -1,7 +1,8 @@
 HTTP/1.1 200 OK
-X-GUploader-UploadID: AEnB2UrpvndNhm0NVJSEVKjCrDbhAXHpXQPiVOlwvTbdm8GgysPqXuHDrpXgTFX2ENBePl8EjwSq3SfSieuqneCtMrJb0QITnA
-Date: Sat, 22 Oct 2016 22:35:58 GMT
-Expires: Sun, 22 Oct 2017 22:35:58 GMT
+X-GUploader-UploadID: AEnB2UrQE-wRxJotXsxuaezaad98qc_Kl9Iprm_RYygEyOTheZHvl1UIGWjVxZx9J9W6OAa4M1E4ratvu7Sm8SMpebIoNm5fRA
+Date: Sat, 22 Oct 2016 22:50:01 GMT
+Cache-Control: public, max-age=31557600
+Expires: Sun, 22 Oct 2017 22:50:01 GMT
 Last-Modified: Thu, 07 Jan 2016 13:30:47 GMT
 ETag: W/"4c4830946dc6a8ae6ec70594631a0e48"
 x-goog-generation:<PHONE_NUMBER>816000
@@ -14,9 +15,7 @@ x-goog-hash: md5=TEgwlG3GqK5uxwWUYxoOSA=
 x-goog-storage-class: STANDARD
 Vary: Accept-Encoding
 Warning: 214 UploadServer gunzipped
-Content-Length: 102518
 Server: UploadServer
-Cache-Control: public, max-age=31557600
-Age: 836
-Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
+Alt-Svc: quic=":443"; ma=2592000; v="36,35,34"
+Transfer-Encoding: chunked

@paulocoghi i think you might have to talk to GCS support about this issue, HEAD should have an idempotent output. We will additionally ignore this check for now.

I will inform Google about his issue! This is not a Minio's fail. Thanks for all the info!

We will additionally ignore this check for now.

This will help a lot of users!


Bank name above card number

I'm using this package and one thing that it don't contains is bank name above card number. I'm find similar package that contains this feature.

Thanks @fartem
We'll consider this enhancement in next feature bucket.


Merged main into dev 1.24

Week 13 update to bring main into dev-1.24 branch.

/cc @JamesLaverack, @marosset FYI
/cc @jlbutler @sftim @reylejano
/milestone v1.24

Neat! Clean merge, no errors 🙂

clean sync
/approve

first try!
/lgtm


Remove copied code from pkg/errors and use it as go module

What does this PR do?
It removes copied code from pkg/errors and use it as go module.
Review only one commit https://github.com/devfile/devfile-parser/pull/15/commits/ac503fdaff1ddab1f2731c4d614cd536b0901673. See below why.
Let me know if there is any reason not to use pkg/errors in that way.
Which issue/PR does this PR reference?
N/A

/retest


keyword search with different word forms

I am wondering if it is possible to highlight a key word with different key word forms. Ex:  I want highlight "make", and it is able to highlight "make","makes","made", "making".

Hi @sdnd2000!
You can use the synonyms option to add those different word forms (demo):
$(function() {

  $(".context").unmark().mark("make", {
    synonyms: {
      "make": "makes",
      "makes": "making",
      "making": "made"
    }
  });

});

In the future, we hope to be able to add the synonyms as an array (see #246):
synonyms: {
  "make": ["made", "making", "makes"]
}

Thanks, @Mottie

If I put the  synonyms like the below, it is only able highlight "makes", if I search "make", not able to highlight all the other forms, "making","made"?
synonyms: {
"make": "makes",
"makes": "making",
"making": "made"
}

Because the synonyms are chained like that, a search for any one word will match the others. Check out the demo I shared.

Actually, I noticed if you search for "makes", only that result shows up... in this case, it appears that the order of the synonyms matters (demo):
$(function() {

  $(".context").unmark().mark("makes", {
    synonyms: {
      "makes": "make",
      "make": "making",
      "making": "made"
    }
  });

});

Hi, Mottie, thanks for the explanation. Actually, what I am looking for is that when I search any keyword, the related word forms also get highlighted, the demo works good only for "make" , what if I search "makes", "making", all the other forms can also get highlighted?

Hi, please check the demo, I am trying to highlight those synonyms (be am is are was were being been have had has having), it didn't work for "being", "been", "had"

If you use the code that supports a synonym array (not merged yet)  you can achieve this result...
https://rawgit.com/danny0838/mark.js/synonyms/dist/jquery.mark.js
Check out the demo.
$(function() {

  $(".context").unmark().mark("had", {
    accuracy: "complementary",
    synonyms: {
      "am": ["be", "is", "are", "were", "was", "being", "been", "am", "have", "has", "had", "having"]
    }
  });

});

I added the accuracy: "complementary" so "being" and "been" are highlighted instead of just the "be" portion.

@Mottie Why would the accuracy setting be necessary for these synonyms?

Hi, I tried  the demo, so when I put "being" or "been", the others are not highlighted

@julmot It's because of the way regular expressions match... because "be" is in the array before "been" and "being", the resulting highlight will only include "be"

If I move the "be" entry after the other entries, it works fine

Using accuracy: "complementary" will make either arrangement work.
As for the second demo... the resulting regular expression is very odd
(am|be|is|are|were|was|being|been|am)en

But it also benefits from moving the "be" after the other entries


English models

Hey there, any chance there are models for the English language available, or is this only usable in Portuguese yet?

Hi Erick,
I'm facing following issue:
Reading text...
Loading vocabulary
Done. Dictionary size is 129998 types
Creating new network...
Loading word vectors...
Generating capitalization features...
Generated 5 feature vectors with 5 features each.
Generating suffix features...
Generated 457 feature vectors with 5 features each.
Generating gazetteer features...
Generated 2 feature vectors with 5 features each.
Generated 2 feature vectors with 5 features each.
Generated 2 feature vectors with 5 features each.
Generated 2 feature vectors with 5 features each.
Created new network with the following layer sizes: 400, 300, 17
Starting training with 22138 sentences
Network weights learning rate: 0.000100
Feature vectors learning rate: 0.010000
Tag transition matrix learning rate: 0.010000
Training for up to 40 epochs
Traceback (most recent call last):
File "bin/nlpnet-train.py", line 267, in
train(text_reader, args)
File "bin/nlpnet-train.py", line 210, in train
args.iterations, report_intervals, args.accuracy)
File "network.pyx", line 574, in nlpnet.network.Network.train (nlpnet/network.c:8601)
File "network.pyx", line 636, in nlpnet.network.Network._train_epoch (nlpnet/network.c:9546)
File "network.pyx", line 310, in nlpnet.network.Network._tag_sentence (nlpnet/network.c:5898)
ValueError: all the input arrays must have same number of dimensions

Hi @kiran-surya ,
your log output has "gazetteer features", which is not part of my original nlpnet. I suppose you are using some fork with NER functionalities?

Hi @erickrf,
Thanks for your prompt reply. Yes, i'm using NER functionality, but that should not effect vector dimensions, correct?

No, it shouldn't, but I can't help much if the code is from a fork. The problem you describe (at least with line numbers in the stack trace) doesn't apply to the current nlpnet version.

Thank you.

Hi Erick
I have installed nlpnet successfully. But when I try to set the path (folder containing models), it always gives error ": No such file or directory"
I used both method like
$ nlpnet-tag.py srl --data /media/backup/NLP_tool/nlpnet/data --lang pt
and also in python command line

tagger.set_data_dir('/media/backup/NLP_tool/nlpnet/data')

Both commands gives the same error.
/media/backup/NLP_tool/nlpnet/data folder contains all the .zip model file and also extracted file. I also give the path of extracted file like: '/media/backup/NLP_tool/nlpnet/data/pos-pt'
Could you please suggest me where I went wrong?
Thanks in advance.
Shrestha

Hi Shrestha,
the data parameter value should be the path to the uncompressed folder, i.e. the contents of that folder should be vocabulary.txt, .npz files etc.
If you still get the error, please copy the full error message from nlpnet. Also, check if you are using the most recent version of code and data (they haven't been updated in some months, though).

Hi Erick,
Thanks for the reply.
nlpnet.set_data_dir('/media/backup/NLP_tool/nlpnet/data/pos-pt')
works from python and also I can now run POS and SRL example for Portuguese language.
But if I try to set the language, then it gives error:

nlpnet.set_data_dir('/media/backup/NLP_tools/nlpnet/data/pos-pt', language='pt')
Traceback (most recent call last):
File "", line 1, in
TypeError: set_data_dir() got an unexpected keyword argument 'language'

Next issue:
I tried to used English dependency as given in example. I have set data dir successfully. But when I tried to parse the example sentence it give error:

parser = nlpnet.DependencyParser('/media/backup/NLP_tools/nlpnet/data/dependency', language='en')
parsed_text = parser.parse('The book is on the table.')
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/nlpnet/taggers.py", line 336, in parse
parsed = self.parse_sentence(sent)
File "/usr/local/lib/python2.7/dist-packages/nlpnet/taggers.py", line 361, in parse_sentence
tokens = self.pos_tagger.tag_tokens(tokens, return_tokens=True)
File "/usr/local/lib/python2.7/dist-packages/nlpnet/taggers.py", line 444, in tag_tokens
answer = self.nn.tag_sentence(converted_tokens)
File "nlpnet\network.pyx", line 268, in nlpnet.network.Network.tag_sentence (nlpnet/network.c:5297)
File "nlpnet\network.pyx", line 294, in nlpnet.network.Network._tag_sentence (nlpnet/network.c:5754)
File "nlpnet\network.pyx", line 217, in nlpnet.network.Network._create_sentence_lookup (nlpnet/network.c:4529)
ValueError: all the input array dimensions except for the concatenation axis must match exactly

Could you please let me know where things goes wrong?
Thanks
Shrestha

Hi Erick
Sorry for many issues.
My next issue is, I could not find the training script(nlpnet-train.py) that is supposed to be script folder but could not find it.
is train_srl.py in "srl" is training script? I am bit doubt on it.
OR, could you please point me, from where can I download it?

next issue is I am not able to run the stand alone script from command line. for eg.
$ nlpnet-tag.py pos --data /media/backup/NLP_tools/nlpnet/data/pos-pt/ --lang pt
: No such file or directory
Did I installed nlpnet wrongly or wrong version. But it works on python (As I mentioned in earlier post).
Thanks
Shrestha

@nshresthan I use Linux and  have had this problem. It solved by converting the DOS file format to Linux (by sudo fromdos /usr/local/bin/nlpnet-* command).
I converted all nlpnet-*.py files.


font is not centered no way to adjust margin around font

I am not sure what you mean in this case.
This tool was not meant to adjust margins -- if you want more/less space around letters, draw characters with less space. Otherwise margin seems like textbox issue, or whatever you use for drawing the bitmaps. This tool only divides an image into pieces, it does not include any additional info.

This is the font..

I was also using a button.
tbh I don't even think I have the same project anymore.


Anyone can create a "follows" relationship between any two users

Sending a PUT request to /users/follow/{id1}/{id2} will make user with id1 follow user with id2.
So, anyone can create a follows relationship between any two users they know the ids of. Since ids are not private information, anyone could easily get the id of any user.
I'm sure you can understand how this could easily be abused...

Hey, so we still have this issue?  Could we just handle this by changing the API call? or any other insights on how to handle this is welcome

Solved by your PR!


[patch] Obfuscate imports in the standard node library

So they don't show up in tab completion menus -- only the relevant node classes show up now!
@samwaseda, this idea came to me during our conversation on Monday. I don't think it's something that should be necessary for people writing a node module, but maybe it's a best practice? It's a bit of a pain to write it this way, but it is the dead-simplest way to get the tab completion menu for the module to show only the nodes, which is a clear win. Thoughts?

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

0 of 0   changed or added relevant lines in 0 files are covered.
15 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 91.334%

Files with Coverage Reduction
New Missed Lines
%

nodes/standard.py
15
91.43%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
2856

Relevant Lines:
3127

💛  - Coveralls

An alternative would be to have an pyiron_workflow.api module and in pyiron_workflow.__init__.py just from pyiron_workflow.api import *. This could have submodules like pyiron_workflow.api.standard_nodes, where in the submodule we from pyiron_workflow.nodes.standard import (...) just grabbing the nodes we want as public.
I actually like the api approach a bit more as it's clearer/more rigorous. In both cases there's some typing legwork to do which is annoying. The big downside I see to the api approach is writing a new pyiron_workflow.nodes.standard class and then just simply forgetting to expose it in the API...


drop create_eks module input

Description
Historicaly variable create_eks was created to allow common flow of destroying module resources without changing code base (setting create_eks=false). Main purpose was becuase terraform modules for long time where not allowing count or for_each.
Currently following constructions are allowed:
module "eks" {
  count           = var.create_eks ? 1 : 0
  source          = "terraform-aws-modules/eks/aws"

  cluster_version = "1.21"
  cluster_name    = "my-cluster"
  vpc_id          = "vpc-1234556abcdef"
  subnets         = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"]

  worker_groups = [
    {
      instance_type = "m4.large"
      asg_max_size  = 5
    }
  ]
}

I think we can deprecate input create_eks in module (this will be breaking change) what will simplify code base.
@antonbabenko  @bryantbiggs  what are your thoughts here?

Let's keep it as it is. create_* was added a few years ago because I have been mostly using Terragrunt and it is the easiest way to disable the module there.
We also use this pattern in all newer modules to control the subset of resources we want to create (for example, eventbridge module).


docs: ✏ Started working on the format for chlorophyll's readme

An initial attempt at structuring the README. Since the focus is on ease of use, the readme should be enough to get started with Green for a page without a framework.
The idea is to use the readme to discuss usage for default cases. If we can describe it in few enough words for a readme, it is easy enough to use. For modifiers and special cases, we link to the documentation in the storybook.

:tada: This PR is included in version<EMAIL_ADDRESS>:tada:
The release is available on:

npm package (@beta dist-tag) :package::rocket:
GitHub release :package::rocket:

:tada: This PR is included in version<EMAIL_ADDRESS>:tada:
The release is available on:

npm package (@beta dist-tag) :package::rocket:
GitHub release :package::rocket:

:tada: This PR is included in version<EMAIL_ADDRESS>:tada:
The release is available on:

npm package (@beta dist-tag) :package::rocket:
GitHub release :package::rocket:

:tada: This PR is included in version<EMAIL_ADDRESS>:tada:
The release is available on:

npm package (@beta dist-tag) :package::rocket:
GitHub release :package::rocket:


Setting values in Clay from Javascript

I'm looking to get my existing apps to use Clay, but I need to preserve my users' settings that are currently stored elsewhere in LocalStorage on the phone.
Is there a preferred way of writing values back into Clay's storage?
Code examples would be great if anyone has them.
Thanks.

Not that is currently supported. https://github.com/pebble/clay/issues/77 is one solution if you want to submit a PR ;)
Thanks for the feedback. I'm going to close this as a duplicate.


Reportpython3.7-cherrypy-18.3.0 build failure

cherrypy-18.3.0 fails to build
Steps to reproduce the behavior:

nix-channel --update
nixos-rebuild switch

Expecting a clean rebuild
Additional context
...
XPASS cherrypy/test/test_caching.py::CacheTest::test_antistampede #1536
XPASS cherrypy/test/test_conn.py::LimitedRequestQueueTests::test_queue_full #1535
XPASS cherrypy/test/test_static.py::StaticTest::test_file_stream #1475
SKIPPED [1] /build/CherryPy-18.3.0/cherrypy/test/helper.py:328: skipped (not running HTTPS)...
SKIPPED [5] /build/CherryPy-18.3.0/cherrypy/test/test_session.py:411: memcached not available
SKIPPED [1] cherrypy/test/test_static.py:196: Windows only
= 1 failed, 286 passed, 7 skipped, 1 deselected, 3 xpassed, 1 warning in 135.78s (0:02:15) =
/build/CherryPy-18.3.0/cherrypy/process/wspbus.py:258: RuntimeWarning: The main thread is exiting, but the Bus is in the states.STARTED state; shutting it down automatically now. You must either call bus.block() after start(), or call bus.exit() before the main thread exits.
'main thread exits.' % self.state, RuntimeWarning)
kBuild: Compiling RuntimeGuestR3Shared - /build/VirtualBox-6.1.4/src/VBox/Runtime/r3/posix/filelock-posix.cpp
kBuild: Compiling RuntimeGuestR3Shared - /build/VirtualBox-6.1.4/src/VBox/Runtime/r3/posix/ldrNative-posix.cpp
kBuild: Compiling RuntimeGuestR3Shared - /build/VirtualBox-6.1.4/src/VBox/Runtime/r3/posix/RTPathUserDocuments-posix.cpp
builder for '/nix/store/fwrh1p37p823s7v59v4jk3hn93ayzb16-python3.7-cherrypy-18.3.0.drv' failed with exit code 1
cannot build derivation '/nix/store/3p93cka8bfgr57yjhvr5zaij1zma3x2h-mnemosyne-2.7.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/71dax7a2ah6aksrk3wk9x1hsimzfg865-tribler-7.4.4.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/aqh19w173161f9c86qjfp70mccqsa6s1-system-path.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/xg9ff4z4kbf6nlmxsvablp8pm9sd9y1f-xsession-wrapper.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/5fapgqqjglkpndaxslk1pdq3nfq8sh4l-nixos-system-bx26-20.09pre220217.39247f8d04c.drv': 1 dependencies couldn't be built
error: build of '/nix/store/5fapgqqjglkpndaxslk1pdq3nfq8sh4l-nixos-system-bx26-20.09pre220217.39247f8d04c.drv' failed
Metadata

system: "x86_64-linux"
host os: Linux 5.4.28, NixOS, 20.09pre218613.ae6bdcc5358 (Nightingale)
multi-user?: no
sandbox: yes
version: nix-env (Nix) 2.3.3
channels(root): "nixos-20.09pre220217.39247f8d04c"
channels(k): ""
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

I'm seeing this too. One of the tests is failing. I found a mention of the test being flaky upstream. Didn't manage to identify the cause yet.
I don't quite understand the failing test so I'll ask upstream. For now we could try disabling the failing test.
In the meantime there's now a build in cache.nixos.org so this is consistent with the flaky status of this test.
Also a slightly more helpful error log below:
(... extra lines omitted ...)
cherrypy/test/test_tools.py::ToolTests::testCombinedTools FAILED         [ 86%]
(... extra lines omitted ...)
_________________________ ToolTests.testCombinedTools __________________________

self = <cherrypy.test.test_tools.ToolTests testMethod=testCombinedTools>

    def testCombinedTools(self):
        expectedResult = (ntou('Hello,world') +
                          europoundUnicode).encode('utf-8')
        zbuf = io.BytesIO()
        zfile = gzip.GzipFile(mode='wb', fileobj=zbuf, compresslevel=9)
        zfile.write(expectedResult)
        zfile.close()

        self.getPage('/euro',
                     headers=[
                         ('Accept-Encoding', 'gzip'),
                         ('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7')])
        self.assertInBody(zbuf.getvalue()[:3])

        zbuf = io.BytesIO()
        zfile = gzip.GzipFile(mode='wb', fileobj=zbuf, compresslevel=6)
        zfile.write(expectedResult)
        zfile.close()

        self.getPage('/decorated_euro', headers=[('Accept-Encoding', 'gzip')])
        self.assertInBody(zbuf.getvalue()[:3])

        # This returns a different value because gzip's priority was
        # lowered in conf, allowing the rotator to run after gzip.

        Load interactivity setting from environment, where
        the value can be numeric or a string like true or
        False or 1 or 0.
        """
        env_str = os.environ.get('WEBTEST_INTERACTIVE', 'True')
        is_interactive = bool(json.loads(env_str.lower()))
        if is_interactive:
            warnings.warn(
                'Interactive test failure interceptor support via '
                'WEBTEST_INTERACTIVE environment variable is deprecated.',
>               DeprecationWarning,
            )
E           DeprecationWarning: Interactive test failure interceptor support via WEBTEST_INTERACTIVE environment variable is deprecated.

env_str    = 'True'
is_interactive = True
self       = <cherrypy.test.test_tools.ToolTests testMethod=testCombinedTools>

/nix/store/73vm9wzl2779zggh5yp4yp3pi2bby7fn-python3.7-cheroot-8.2.1/lib/python3.7/site-packages/cheroot/test/webtest.py:244: DeprecationWarning
----------------------------- Captured stdout call -----------------------------

    ERROR: b'"\x8e\x0b\x03~\x97\x94a\x03\x02\xf6K\xd0\xcc\xcc\xda,\xd22\xcdL<\xd7sk4\x03\xe62\x9e\x8e\x12\x03\x03\x03' not in body: b'"\x8e\x0b\x03~\x97\x94a\x05\x02\xf6K\xd0\xcc\xcc\xda,\xd22\xcdL<\xd7sk4\x03\xe62\x9e\x8e\x12\x03\x03\x03'
------------------------------ Captured log call -------------------------------
INFO     cherrypy.access.140737297570000:_cplogging.py:284 <IP_ADDRESS> - - [11/Apr/2020:09:57:15] "GET /euro HTTP/1.1" 200 33 "" ""
INFO     cherrypy.access.140737297570000:_cplogging.py:284 <IP_ADDRESS> - - [11/Apr/2020:09:57:15] "GET /decorated_euro HTTP/1.1" 200 35 "" ""
INFO     cherrypy.access.140737297570000:_cplogging.py:284 <IP_ADDRESS> - - [11/Apr/2020:09:57:15] "GET /decorated_euro/subpath HTTP/1.1" 200 35 "" ""

I did a bisect and the issue accures since the update from Python 3.7.6 to 3.7.7.

A workaround to this issue that disables the failing test is part of #84954 .
We should still wait for upstream before closing as it's unclear if this affects functionality.

Looks like it's reproducible in nightly: https://travis-ci.org/github/cherrypy/cherrypy/jobs/674223158#L569.

My system is now building correctly.
Many thanks to whoever fixed the problem!
Closing.


Increment version for core releases

Increment version for core releases

Can one of the admins verify this patch?


Tooltip Woes

fair warning, this is using Goo <IP_ADDRESS>, and some work seems to have been done since then, so i couldn't say if this happens in the current dev version
basically: tooltips on goo bulbs can get kinda.. weird.

this is the setup i used to reproduce. i marked the bulb in question affected by the bug.

for the first screenshot, i built the setup and then placed 1 cobblestone in the gooifier.
i suspect nbt shenanigans; something about not properly clearing tags after the goo pump empties the bulb.
if you use an item with a lower goo volume, like an iron ingot, the tooltip will be much smaller, but still feature a lot of dead space.

Unsure, I think I noticed this issue during testing but it may or may not be fixed by quite a bit of drift. We'll check it again in a later build, leaving this open for now.

I remembered what this was lol. The collection of fluids in a bulb is a LIST type and it can include empties, any number of them. Not only was their update call not respecting it but the handler responsible for tooltips wasn't either.
The behavior now is an auto-pruning and also tooltips don't show or allocate space for "empty" fluid stacks, which does correct this behavior.
I will STILL leave this open, as a formality, until we confirm it's good in a latest release.

Should be fixed!


Chrome chat window no padding/margin at bottom.

Cant see the most recent chat meassage, because it so close to the edge of the screen. Not like the regular chat.
Cool idea, nice work on the plugin!
Image here:
https://imgur.com/t6LKzM8

Thanks for the report. I think this should be fixed by #18 which will be included in the next release.


HHH-11756 - Typo in public API method name: requiresPostCommitHanding…

… on PostInsertEventListener
https://hibernate.atlassian.net/browse/HHH-11756
I had to introduce the PostActionEventListener interface in order to avoid compilation errors for classes implementing all the 3 interfaces affected by the typo due to the 3 default methods with the same name (
aN example is  org.hibernate.cache.internal.CollectionCacheInvalidator).

@dreab8, this looks good to me. Should I merge?

Thanks @gbadner,
I have changed the visibility of PostActionEventListener to package and rebased the PR.
If for you t is fine you can merge it.
Thanks

I agree package is better. Merged.