Error while trying to add Integration to Home Assistant

I agree to the following

[X] I have read the documentation right now
[X] I have read the FAQs right now
[X] I am aware of the latest release notes
[X] I am aware that an integration that was installed via HACS also needs to be updated via HACS
[X] The Backend (CCU/Homegear/...) is working as expected, devices are taught in and are controllable by its own UI.
[X] I am running the latest version of the custom_component (and Home Assistant)

The problem
When trying to add the Integration I get the following message: Der Konfigurationsfluss konnte nicht geladen werden: 500 Internal Server Error Server got itself in trouble
What version of HomematicIP (local) has the issue?
1.69.0
What was the last working version of HomematicIP (local)?
No response
What type of installation are you running?
Home Assistant OS
What type of installation are you running for your homematic backend?
RaspberryMatic Standalone
Which version of your homematic backend are you running?
core-2024.10.4
What hardware are you running for your system?
Raspberry 3b
Which config details do you use

[ ] TLS
[ ] callback data (see)

Which interfaces do you use?

[X] Homematic IP
[X] Homematic (Bidcos-RF)
[ ] Groups (Heating-Group)
[ ] BidCos-Wired (HM-Wired)

Diagnostics information (no logs here)
No response
Log file extract. Anything in the logs that might be useful for us? The log (Setting/System/Logs -> load full log) is the best source to support trouble shooting!
No response
Additional information
I'm not able to install it, so device logging not possible

This is not an issue with  the integration. It's related to HA.
Please add the log (full log)

HA Log.txt
does that help ?? thanks a lot for your help

Not really, but looks like your system has a problem with uv that is used by HA for dependency management.
Try restart HA, then try again.
Closing this, as it is an issue with HA, and not with this integration.


I tried to create a go environment and proceeded according to the tutorial.
https://golang.org/doc/install?download=go1.13.7.darwin-amd64.pkg
Do you need go mod init before go build??
or execute go build hello.go.

$ pwd
/Users/xxxx/go/src/hello
$ ls
hello.go
$ go build
go: cannot find main module; see 'go help modules'

$ cat hello.go
package main

import "fmt"

func main() {
	fmt.Printf("hello, world\n")
}

This is happening because you have the environment variable GO111MODULE=on.  That is telling the go tool that you will always be building in module mode.  The go tool is complaining because it can't find a go.mod file for your program.
@bcmills @jayconrod We need a better error message here, or different behavior.

@ianlancetaylor, do you have a specific suggestion? cannot find main module seems pretty unambiguous, and at this point in time we don't expect Go users to get very far without learning the basics of modules.

The issue as originally reported seems like a documentation problem: How to Write Go Code has been updated to include the necessary go mod init step, but users will typically read and follow the Testing step in doc/install.html before they get to How to Write Go Code.
Probably we should suggest testing the installation using go build hello.go (which works regardless of the GO111MODULE setting) instead of just go build.

Heh, the “workspace” link in that section is broken too. (It uses a #Workspaces anchor that no longer exists.)

I did not notice GO111MODULE = on.
I know that the default value is auto.
https://golang.org/doc/go1.13#modules
Previously, when I installed another version of Go, I set GO111MODULE = on, but this time, I did not set GO111MODULE = on myself after installing ...
Is it possible that the values from the previous installation are cached?
Is there any way to change the settings other than go env -w GO111MODULE = on?

@bcmills Think about what this is like for someone who knows nothing.  Maybe people have to learn the basics of modules, but they can only do that if we help them.  For a beginner to Go, "cannot find main module" means nothing.  Better might be something like
cannot determine module because no go.mod file found; see "go help modules"
and, at least until module mode is the default,
(running in module mode because environment variable GO111MODULE=on)
And then "go help modules" (if that is indeed the right link) could use some cleanup as it is written from the perspective of someone who understands GOPATH.

@tkl4230 Yes, if you used go env -w then those values are cached.  You can remove the setting with go env -u.
You can also set the environment variable for just one session using your shell, typically
export GO111MODULE=on

@ianlancetaylor
Thank you for your reply.
I understand.

I think that even because no go.mod file found would be confusing at this point in the flow: nothing in the “Getting Started” doc describes what a go.mod file is or how to create one, so “go.mod file” is nearly as mysterious as main module.
Similarly, GO111MODULE=on implies that the user explicitly set that variable at some point, so they probably have at least seen an introduction to using modules before that point. So I'm not sure that detail would be helpful to beginners either.
We certainly do need to clean up go help modules to make it more approachable, though. (That is #33637.)

Can we at least have the error message point people to "go help modules" (if that is the best place)?
I don't really agree that "no go.mod file" is nearly as mysterious; at least it tells you exactly what is missing, and gives you a starting point for progress.

Can we at least have the error message point people to "go help modules" (if that is the best place)?

The error text already ends with: see 'go help modules'.

Oh, right, sorry.

This should now be fixed in http://tip.golang.org/doc/install: the “Test your installation” instructions are now module-agnostic (and more concise), and the descriptions of GOPATH and go install now occur after the introduction to modules in the new-user flow.


Adjust the method of loading the external preloaded shared libraries

closes: #ISSUE_Number

Change logs
Add a new mechanism to pre-load dynamic libraries during database startup. Controlled library inclusion through header files.
External lib is preloaded. Need to write to theprocess_shared_preload_libraries.h header file. This loads the external lib through the header file.
Why are the changes needed?
Describe why the changes are necessary.
Does this PR introduce any user-facing change?
If yes, please clarify the previous behavior and the change this PR proposes.
How was this patch tested?
Please detail how the changes were tested, including manual tests and any relevant unit or integration tests.
Contributor's Checklist
Here are some reminders and checklists before/when submitting your pull request, please check them:

[ ] Make sure your Pull Request has a clear title and commit message. You can take git-commit template as a reference.
[ ] Sign the Contributor License Agreement as prompted for your first-time contribution(One-time setup).
[ ] Learn the coding contribution guide, including our code conventions, workflow and more.
[ ] List your communication in the GitHub Issues or Discussions (if has or needed).
[ ] Document changes.
[ ] Add tests for the change
[ ] Pass make installcheck
[ ] Pass make -C src/test installcheck-cbdb-parallel
[ ] Feel free to @cloudberrydb/dev team for review and approval when your PR is ready🥳

I saw one PR #155 with the same title. After this PR is merged, could we close #155?


does this tool never work on number n, e, c anymore?

Hi Ganapati,
 I run into a problem lately when doing some ctfs, if only provide n, e, and c, this tool would only run without give any result, but only message that a temp file is created, but it would work if I break the n into p and q by some other tool like FactorDB.

 So I go over the code, and found that now it would request n with p or q to get all for numbers (n, e, p, q) to proceed, if not, it would simply quit program. I modified only come code so I can make sure of it.

./RsaCtfTool.py -n<PHONE_NUMBER>4393269120598772974257218874289179816258533748548954836353808000542909731398449660121424717248079724923923284922221800385870164798744402737063530114487159042350959711492581286948377310386675916734743955708759421607349585475823504183537132290212235481788134354234151518170214048887523664730897405647 -e<PHONE_NUMBER>8228965483088768689361237580655397969352079774015797079626751211817603607155962600219370112069853693506378621129705581863959239984871073674637310005220323695488701830477574210150173980203084059519439551150923764323395592278383658383525721471839777239932693638775164411928659371101425091253226312809 --uncipher<PHONE_NUMBER>2658132246395680583012680197641520463055015905954159065596263829466315684813964601637222796742820040947867106250604831640789683230174556440623073026811900236014477245382133062014821631152893829897692611106964558955134460480794092202226246351625569961925929573208935964302390747204250124554416009841 --attack wiener
private argument is not set, the private key will not be displayed, even if recovered.
p=  None
q=  None

 Does this work as intended? Since from some history posts and issues that this tool can run with only supply n, e, and c very nicely with small fractions of course. And this do provide easy to use on ctfs.

Thank you very much.

Hi,
It should be solved in pr #245
./RsaCtfTool.py -n<PHONE_NUMBER>4393269120598772974257218874289179816258533748548954836353808000542909731398449660121424717248079724923923284922221800385870164798744402737063530114487159042350959711492581286948377310386675916734743955708759421607349585475823504183537132290212235481788134354234151518170214048887523664730897405647 -e<PHONE_NUMBER>8228965483088768689361237580655397969352079774015797079626751211817603607155962600219370112069853693506378621129705581863959239984871073674637310005220323695488701830477574210150173980203084059519439551150923764323395592278383658383525721471839777239932693638775164411928659371101425091253226312809 --uncipher<PHONE_NUMBER>2658132246395680583012680197641520463055015905954159065596263829466315684813964601637222796742820040947867106250604831640789683230174556440623073026811900236014477245382133062014821631152893829897692611106964558955134460480794092202226246351625569961925929573208935964302390747204250124554416009841 --attack wiener --ignore_checks

Hi,
Thanks for quick reply, but I just tried and also checked code, there's no this option exist, my repo is the latest:

RsaCtfTool.py: error: unrecognized arguments: --ignore_checks
Thanks.

Yo need to wait for @Ganapati  to merge the patch

daedalus disabled auto check publickey, it should work in the newest version.

Thanks, it's working now.


Removed indirection in starting the consumer in ConsoleLoggerProcessor

I see no need for the indirection to the static method, which in turn only calls the instance method.
public ConsoleLoggerProcessor()
{
	// Start Console message queue processor
	_outputTask = Task.Factory.StartNew(
		ProcessLogQueue,
		this,
		TaskCreationOptions.LongRunning);
}

private void ProcessLogQueue()
{
	foreach (var message in _messageQueue.GetConsumingEnumerable())
	{
		WriteMessage(message);
	}
}

private static void ProcessLogQueue(object state)
{
	var consoleLogger = (ConsoleLoggerProcessor)state;

	consoleLogger.ProcessLogQueue();
}

The (little) change uses the instance method directly in the Task.Factory.StartNew method.

@gfoidl,
Thanks for having already signed the Contribution License Agreement. Your agreement has not been validated yet. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Assigning to @pakrym for review.

@gfoidl thank you!


Refactor/OmegaId

This reduces the size of the OmegaID QR code a lot. However the solution is maybe not that elegant.

Hmmm, the main branch had a bug with a circular dependency in Vevenadapter, this broke feide login in the development environment. The fix for now is to not use the method handler, this is against the convention, and we should maybe discuss a more permanent solution.


Expected all tensors to be on the same device, but found at least two devices cpu and cuda

When I infer this code, This Error Occured.. How to solve this problem?
How many steps did you take until demo.wav came out?

Hello, for this problem, please check whether the model is placed on the right device and pay special attention to the model.to() method

Please keep the equipment where the model is placed consistent

The problem has been fixed
thanks !

The problem has not been resolved. Could you check the conference file again?

Let me ask you one more question.
How many epochs did you learn for the ayachi_nene model?

The problem not fixed.. please check the inference file.. Did you push the file properly?

but the code run normal on my PC.
| |
@.***
|
|
@.***
|
---- Replied mail ----
| From | Sleeping @.> |
| Date | 10/04/2022 07:42 |
| To | @.> |
| Cc | @.>、State @.> |
| Subject | Re: [StarxSky/tacotron2-JP] Expected all tensors to be on the same device, but found at least two devices cpu and cuda (Issue #1) |
The problem not fixed.. please check the inference file.. Did you push the file properly?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you modified the open/close state.Message ID: @.***>


quanta: 0.5.2 + calibrate it only once

This PR shows the work we'd need to get a quanta clock that comes with a mandatory calibration step (which takes 1s):

Introduces a new feature enable_quanta so that we can pull in more than one crate
Adds a calibrate_quanta_clock function
calibrates only once using once_cell's sync Lazy.

This still fails tests because some use real clocks & those sometimes run in different processes, and so take 1s to calibrate each. That's not ideal & if quanta keeps doing this, we should probably move off of it as a default time source.

[ ] Leave this open until https://github.com/metrics-rs/quanta/issues/16 has a resolution.

I thiiink #44 (where we bump to 0.6.2) could do this too, with a bit of adjusting the function signatures. I'll close this and try there.


Convert Numbers to words representation

It would great if you add this method like:
Number To Words Converter
Names of large numbers
var words = bigInt("75643564363473453456342378564387956906736546456235345").toWords() => seventy-five sexdecillion, six hundred forty-three quindecillion, five hundred sixty-four quattuordecillion, three hundred sixty-three tredecillion, four hundred seventy-three duodecillion, four hundred fifty-three undecillion, four hundred fifty-six decillion, three hundred forty-two nonillion, three hundred seventy-eight octillion, five hundred sixty-four septillion, three hundred eighty-seven sextillion, nine hundred fifty-six quintillion, nine hundred six quadrillion, seven hundred thirty-six trillion, five hundred forty-six billion, four hundred fifty-six million, two hundred thirty-five thousand, three hundred forty-five

You can using this:
https://ourcodeworld.com/articles/read/353/how-to-convert-numbers-to-words-number-spelling-in-javascript (see paragraph "B. Self implementation")
This working with strings. And function from here can be called by code, like this:
console.log(numberToEnglish(YOUR_bigInt.toString()));

scales you can see here: http://users.skynet.be/nizgorur/very_big_numbers.htm
But wait...
...And I writed full array, here: https://codepen.io/anon/pen/MGPZmE
You can see big string_number, then words in the bottom on this page.
There is a modified function with array (exponents from 3 to 3003, step 3),
there is big number-string generator (value up to 10^3003),
regular expression for split big-number-string, and...
running this with custom delimiters:
document.write(numberToEnglish(number, 'hehheh', '_', '; '));

All code is in JTML and no need to include anything. This is copyable and working locally in HTML-file.
Have a nice day.

You can using this:
https://ourcodeworld.com/articles/read/353/how-to-convert-numbers-to-words-number-spelling-in-javascript (see paragraph "B. Self implementation")
This working with strings. And function from here can be called by code, like this:
console.log(numberToEnglish(YOUR_bigInt.toString()));

"scales", you can see here: http://users.skynet.be/nizgorur/very_big_numbers.htm
But wait...
...and I already writed full array for scales - here: https://codepen.io/anon/pen/MGPZmE
You can see BIG STRING NUMBER, and then words - in the bottom of those page.
There is a modified function, with FULL SCALES-ARRAY (exponents of base 10 - from 3 to 3003, step 3),
also, there is big-number-string-generator (value up to 10*10^3003),
regular expression for split big-number-string by 90 rows and 3 digits for each,
and running this with custom delimiters:
document.write(numberToEnglish(number, 'hehheh', '_', '; '));

All code is in HTML, there and no need to include anything.
This is copyable and working locally in HTML-file.
Also, you can put this in JS, without tag
<script>
</script>

then save this in JS-file near your BigInteger.js,
comment functions, and include code then, like this bigInt-library.
Have a nice day.
P.S.: Hm... I still don't know how to add hyphen for get seventy-five.

This is a good idea, but I think it would be better to put this in a separate library as a plug-in to this one. I want to avoid bloating this library with lots of features, and parsing and outputting words is a fairly complicated feature.

I myself wrote this feature in just 19 lines of codes(including arrays of the words), I just felt that this feature might be useful for the package, anyway thanks for the replies.

hyphen added there: https://codepen.io/anon/pen/MGPZmE

Also, first nulls are deleted from string, if this is exists there.

@username1565, It would be great if you complete the code and add support for float numbers like this website for example:
1.5555555555555555
will be:
one and five quadrillion, five hundred fifty-five trillion, five hundred fifty-five billion, five hundred fifty-five million, five hundred fifty-five thousand, five hundred fifty-five ten-quadrillionths
complete the code and put it as a package on github let others enjoy your package! 👍

@P9Q Oww, wow... Where you can see quadrillion, there?
Not very good example, because so many digits have value five - in the number.
How need to dysplay, for example, the value of:
92156000.1565218953159600000001001013?
I see suffix-th's for scales on https://translate.google.com/
for example: one whole and five tenths, eight ten thousandths,
nine hundred thousandth hundred millionths.
Also, you didn't write delimiter after 1, I mean float point.
This can be a word "point" or some another?..
I cann't open your website, because I see an error:
403: Forbidden
You don't have permission to access /calculators/conversions/numberstowords.php on this server.
Maybe this regional limits... So I did open by using https://hide.me/
and I see float numbers not translated correctly to the words...
Yeap, I can upload this here to github. But at first, I want to do complete this and wait your propositions.
Best regards.

@P9Q, look again at my previous example on the site CodePen.io :P
There is your example, with end delimiter.

@P9Q, look again at my previous code on the site CodePen.io :P
There is your example with number 1.5555555555555555 , and with and whole-delimiter.
I did wrote float number generator there as separate function, and fix previous bugs.
For example, chunk delimiter was been added if (number-lenght % 3==0)
You can see the comments in the code.
I don't know how to upload this to github, you can do this yourself. Have a nice day.

Your example 92156000.1569795899999999999999999999999999999999999
give me the answer:
Ninety-two million, then one hundred and fifty-six thousand, then whole, and one tredecillion, five hundred and sixty-nine duodecillion, seven hundred and ninety-five undecillion, eight hundred and ninety-nine decillion, nine hundred and ninety-nine nonillion, nine hundred and ninety-nine octillion, nine hundred and ninety-nine septillion, nine hundred and ninety-nine sextillion, nine hundred and ninety-nine quintillion, nine hundred and ninety-nine quadrillion, nine hundred and ninety-nine trillion, nine hundred and ninety-nine billion, nine hundred and ninety-nine million, nine hundred and ninety-nine thousand, nine hundred and ninety-nine ten-tredecillionths.
because there is a nulls in the end of whole part.
So this is fixed
if(i!==chunksLen-1 && chunks[i+1]!=='-' && chunks[i]!=='000'){words.push(chunk_delimiter);}

See again:

Your example 92156000.1569795899999999999999999999999999999999999
give me the answer:
Ninety-two million, then one hundred and fifty-six thousand, then whole, and one tredecillion, five hundred and sixty-nine duodecillion, seven hundred and ninety-five undecillion, eight hundred and ninety-nine decillion, nine hundred and ninety-nine nonillion, nine hundred and ninety-nine octillion, nine hundred and ninety-nine septillion, nine hundred and ninety-nine sextillion, nine hundred and ninety-nine quintillion, nine hundred and ninety-nine quadrillion, nine hundred and ninety-nine trillion, nine hundred and ninety-nine billion, nine hundred and ninety-nine million, nine hundred and ninety-nine thousand, nine hundred and ninety-nine ten-tredecillionths.
words ', then whole, and', because there was been a nulls - in the end of whole part.
Also, the number<PHONE_NUMBER>000000000000000000000000000000000000000000
give me an answer, like: Nine sexdecillion, then two hundred and fifteen quindecillion, then six hundred quattuordecillion, then , then , then , then , then , then , then , then , then , then , then , then , then , then , then .
So this is fixed by code:
if(i!==chunksLen-1 && chunks[i+1]!=='-' && chunks[i]!=='000'){words.push(chunk_delimiter);}

See that's all again, there.

Now, you can also see this code here: https://github.com/username1565/numbers_to_words

@username1565, I will help you with extending this project, maybe support for other languages etc :)

To do this multilangual, can be expediently using separate files for each language.
But this need to write big arrays for scales in each HTML-file.
Will be better to use more elegand law to do working with prefixes, and suffixes of names for digits.
Then this all can be extend by using LONG SCALE.
I think the code can be writed compactly, if laws will be extracted from OS dll-s or another library.
More operation systems supporting multilangual translating, and this all already exists there.

Also, I did cloning PeterOlson's BigInteger, and modify the main BigInteger.js.
You can see changes here:
https://github.com/username1565/BigInteger/commit/646a809f8da85819c4b986149224057f055f88f3

@P9Q
To do this multilangual, can be expediently using separate files for each language.
But this need to write big arrays for scales in each HTML-file.
Will be better to use more elegand law to do working with prefixes, and suffixes of names for digits.
Then this all can be extend by using LONG SCALE.
I think the code can be writed compactly, if laws will be extracted from OS dll-s or another library.
More operation systems supporting multilangual translating, and this all already exists there.
Also, I did cloning PeterOlson's BigInteger, and modify the main BigInteger.js.
You can see changes here:
https://github.com/username1565/BigInteger/commit/5bfea9f1f2db6dbd2933558dd26ab59e91a2921a
Now I working with UniCode symbols to make convertation BigInteger to Unicode String, and got BigInteger from this string.
This need to contains Unicode Alphabet with copyable symbols, without any special symbols,
and then the base (radix) can be greater and larger than 36.
If Will be used China's symbols, for example.
As result, I did compress googol in the string '⒁꓃╝ᚙ⬠ꌽ⋊□⇧ꉿ꓄ꁑᔴ┯┃ⵚⵗ—⢺㋜⚡ꐅꅞꎧꈙꇃ⇠︾' and do success decompressing this to bigInt.

@P9Q, to do this multilangual, can be expediently using separate files for each language.
But this need to write big arrays for scales in each HTML-file.
Will be better to use more elegand law to do working with prefixes, and suffixes of names for digits.
Then this all can be extend by using LONG SCALE.
I think the code can be writed compactly, if laws will be extracted from OS dll-s or another library.
More operation systems supporting multilangual translating, and this all already exists there.
Also, I did cloning PeterOlson's BigInteger, and modify the main BigInteger.js.
You can see changes here:
https://github.com/username1565/BigInteger/commit/5bfea9f1f2db6dbd2933558dd26ab59e91a2921a
Now I working with UniCode symbols to make convertation BigInteger to Unicode String, and got BigInteger from this string.
This need to contains Unicode Alphabet with copyable symbols, without any special symbols,
and then the base (radix) can be greater and larger than 36.
If Will be used China's symbols, for example.
As result, I did compress googol to 28 symbols, using base 4436 and 4436 unique symbols,
and then I did got successfully decompressing this value to bigInt.
I thins base can be more than 4436, if will be used this all symbols: https://unicode-table.com

@P9Q, to do this multilangual, can be expediently using separate files for each language.
But this need to write big arrays for scales in each HTML-file.
Will be better to use more elegand law to do working with prefixes, and suffixes of names for digits.
Then this all can be extend by using LONG SCALE.
I think the code can be writed compactly, if laws will be extracted from OS dll-s or another library.
More operation systems supporting multilangual translating, and this all already exists there.
Also, I did cloning PeterOlson's BigInteger, and modify the main BigInteger.js.
You can see changes here:
https://github.com/username1565/BigInteger/commit/5bfea9f1f2db6dbd2933558dd26ab59e91a2921a
Now I working with UniCode symbols to make convertation BigInteger to Unicode String, and got BigInteger from this string.
This need to contains Unicode Alphabet with copyable symbols, without any special symbols,
and then the base (radix) can be greater and larger than 36.
If Will be used China's symbols, for example.
As result, I did compress googol to 28 symbols, using base 4436 and 4436 unique symbols,
and then I did got successfully decompressing this value to bigInt.
I think base can be more than 4436, if will be used all this symbols: https://unicode-table.com

@username1565 , Nice job go ahead, I hope you create a nice and popular thing 👍


Fix build issue in DCHU project

When trying to build these samples, I'm still seeing a failure in the usersvc project:
rget) (1) ->
"C:\Users\Nate-Work\source\repos\Windows-driver-samples\general\DCHU\osrfx2_DCHU_base\osrfx2_DCHU_base\osrfx2_DCHU_base
.vcxproj.metaproj" (default target) (2) ->
"C:\Users\Nate-Work\source\repos\Windows-driver-samples\general\DCHU\osrfx2_DCHU_base\osrfx2_DCHU_usersvc\osrfx2_DCHU_u
sersvc.vcxproj" (default target) (4) ->
(_CheckWindowsSDKInstalled target) ->
  C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.Cpp.WindowsSDK.targets(46
,5): error MSB8036: The Windows SDK version 10.0.17134.0 was not found. Install the required version of Windows SDK or
change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution
". [C:\Users\Nate-Work\source\repos\Windows-driver-samples\general\DCHU\osrfx2_DCHU_base\osrfx2_DCHU_usersvc\osrfx2_DCH
U_usersvc.vcxproj]```

I closed this PR unintentionally.  I apologize. I am reopening the PR.

I closed this PR unintentionally.  I apologize. I am reopening the PR.


$inviewpart not precise

I have a scrollable in-view-container container that contains an in-view element. The $inviewpart works properly by indicating that the top, neither and bottom parts of the element are, respectively, in the viewport. However when opening the chrome dev tools and dock it to the right, the $inviewpart is not precise anymore, its value is top (when the top of the element is in the viewport) and then bottom, which is wrong because the correct value should be neither.
I know that this may be not so important (closing the chrome dev tools will solve the problem), but this has a huge impact when designing a responsive interface, if the logic of in viewport testing rely on $inviewpart, then it won't work for device case.

should be fixed in v2


JSON-fixture tests builder tool

What is wrong?
Since we made (and may make more) protocol changes for Ethereum 2.0, it's better to be well-tested with more various JSON-fixture tests.
How can it be fixed
As @pipermerriam suggested, we can write a tool to record EVM execution and export it in the JSON-fixture tests format.

What do you think of the following scheme:
test1 = StateTest(
    name="CallIncrementsNonce"

    env={  # should have a sensible default because most tests won't touch it
        # ...
    },
    pre_state={
        ACCOUNT_ADDRESS: ACCOUNT_CODE,
    },

    transaction=UnsignedUserAccountTransaction(
        **DEFAULT_TX_PARAMS
    ).as_signed_transaction(PRIVATE_KEY),

    output=None,
    state_updates=[
        (ACCOUNT_ADDRESS, "storage", 0, 1),
    ],
    logs=[],
    gas_payment=0,
)

test2 = StateTest(...)

test_group = TestGroup([test1, test2])
print(test_group.to_json())

Initially I thought we'd want a more complex solution, but now I don't think this would make test creation more clear or concise. So basically, most fields from the JSON file are specified directly. Only the transaction is given by a transaction object, and instead of the complete final state only state changes are given. Changes can be either given as a dictionary (similar to pre_state) or as a flat list to avoid unnecessary nesting especially for storage. Now that I think about it, pre_state could be such a list as well.
TestGroup groups the tests (obviously) and creates the JSON representation. For this, the post_state is constructed and the state root is calculated (by setting the state directly, not by executing the transaction). If multiple tests share the same name they are required to have the same pre_state as well. In this case a single "parametrized" test is created (see "indexes" in the state test files).
If many tests share the same pre_state (one of the cases I thought a more complex design might be useful), functools.partial could be used to avoid repetition. To test a sequence of transactions, multiple tests have to be generated (because state tests allow only for a single transaction), but for that a helper can be used (saves setting env and pre_state):
test3 = test2.extend(
    # same parameters as StateTest, excluding env and pre_state
)

VMTests have mostly the same fields, but "transaction" is replaced with "exec":
test1 = VMTest(
    name="PAYGAS",
    env={
        # ...
    },
    pre_state={
        # ...
    },
    exec={
        "code": [PUSH1, b"\x00", PAYGAS],
    },
    state_updates=[],
    logs=[],
    paygas_gasprice=0,
)

So the only thing that is simplified compared to the raw JSON is that the executed code is specified using the mnemonics instead of raw bytecode. Also, the code is automatically deployed (i.e. the code doesn't have to be repeated in pre_state).
I'm gonna start implementing it like this, but I'm very willing to start all over again in case someone has a better approach.

@jannikluhn I think this is a solid start, though I think we would benefit from being able to use at least some of the same infrastructure for both these tests and the actual JSON fixture tests.  Lets see what this looks like once some code exists and we can iterate from there. 👍


Real-time status update without CLIENT_ID

In 0.4.0-beta.0, real-time status update are supported.
but, CLIENT_ID was already removed.
According to Sesame support, "CLIENT_ID is no longer needed by developing via Sesame SDK."

Is it possible to update real-time status without CLIENT_ID?

Please try v0.4.0-beta.2. Thank you!
FYI: https://github.com/mochipon/pysesame3/issues/64

In v0.4.0-beta.2, status updates from manual lock/unlock and auto-lock are now reflected in real time!!
Thank you for your quick response. :)


TLCOM

Let's implement TLCOM cohesion metric:
Transitive-based object-oriented lack-of-cohesion metric, Jehad Al Dallal, Department of Information Science, Kuwait University, P.O. Box 5969, Safat 13060, Kuwait.
https://www.researchgate.net/publication/220307725_Transitive-based_object-oriented_lack-of-cohesion_metric

The job #65 assigned to @gizmomogwai/z. The budget is 30 minutes, see §4. Please, read §8 and §9. If the task is not clear, read this and this.

The user @skapral/z resigned from #65, please stop working

Resigned on delay, see §8: -30 points just awarded to @skapral/z, total is +150

The job #65 assigned to @llorllale/z, here is why. The budget is 30 minutes, see §4. Please, read §8 and §9. If the task is not clear, read this and this.

@yegor256 this metric establishes indirect connections between methods via chains of method calls that can be arbitrarily long.
For example, if m1 calls m2 and m2 calls m3 and m3 calls m4 and m4 uses attribute a4, then m1 is connected to m4 (they both use a4).
This recursion of arbitrary depth is proving to be hard to implement within budget. Can the full recursion be left as a puzzle?

@llorllale yes, sure

@yegor256 can we close this?

Initial implementation was merged in PR #209
Puzzle #219 left to complete the full recursion
Puzzle #218 left due to impediment on #156
Puzzle #220 left due to impediment on #171

@llorllale thanks!

@ypshenychka/z please review this job, as in §30; the job will be fully closed and all payments will be made when the quality review is completed

@0crat quality good

QA review completed: +8 points just awarded to @ypshenychka/z, total is +869

Order was finished, quality was "good": +35 points just awarded to @llorllale/z, total is +900

@0crat quality good (here)

@ypshenychka The job #65 is now out of scope

@yegor256 3 puzzles #499, #500, #501 are still not solved.

@0crat quality good (here)

@ypshenychka You @ypshenychka/z need to have one of these roles in order to do "Complete QA review": ARC, QA; I'm sorry to say this, but at the moment you've got no roles in this project

@0crat waiting (here)

@driver733 Job gh:cqfn/jpeek#65 is not assigned, can't get performer

@0crat refuse (here)

@janczer Job gh:cqfn/jpeek#65 is not assigned, can't get performer

@0crat refuse (here)

@janczer Job gh:cqfn/jpeek#65 is not assigned, can't get performer


(fix): fixing BodyController isSelected method for multiselect.

It's me... again.
I ran into some problems with the multiselect when I was changing pages for some reason.
The this.select.indexOf(xxx) never found any object (and they were existing) so my checkboxes were unchecked. I don't know what goes wrong.
http://stackoverflow.com/questions/12604062/javascript-array-indexof-doesnt-search-objects
This is not a pretty fix but it worked well. It also somehow fixed the bug I had with the header select.
I assume I'd have the same problem with the simple select but I didn't change the else bracket.
edit: meh, I can't uncheck rows properly anymore with this. I'll looks at it.

Can you make a demo of this happening?
That fix has some other unintended consequences and performance issues too so we will need to come up with something else.

http://jsfiddle.net/ngodfraind/cxcbaf8f/
On this one, the selection will disappear once you change pages (check some rows, go to page 2, go back to page 1). The behaviour changes again if I populate the 'selected' array myself (I'll make a jsfiddle too if you want).

Any news ?

did you merge another feature into this PR? Is your issue still relevant?

The issue is still relevant, but that PR doesn't fix all the problem. Checking rows becomes ok, but you can't uncheck the properly anymore.
I didn't look for a fix since I made the PR so I have no idea why it behave like this.

I'm closing it because I have the on header checbox change in that one.
Also there are other pr/issue for this problem.


Automatically search through ForeignKey fields?

I have many models that have a ForeignKey field to the User model. When I use django-admin-site-search to search for<EMAIL_ADDRESS>by default I only get that user as a result, not also all the objects that belong to this user.
I can extend the filter like so:

class MyAdminSite(AdminSiteSearchView, admin.AdminSite):
    site_header = "Sound Radix site admin"

    def filter_field(self, query, field):
        if isinstance(field, ForeignKey) and field.related_model is User:
            return Q(**{f"{field.name}__email__icontains": query})

        return super().filter_field(query, field)

And then I see many more results, as I'd expect. But it's kind of annoying to have to add these filters by hand for all possible related models (obviously I have ForeignKey fields to other models too). Can this be automated somehow?

Yeah - I think having this as an opt-in via the admin's search fields, as per https://github.com/ahmedaljawahiry/django-admin-site-search/issues/22, is the way to go. Adding it on top of the current implementation would make performance even more problematic.

Available in 1.0.0 👉 https://github.com/ahmedaljawahiry/django-admin-site-search/releases/tag/1.0.0


feat: relax the minimum CMake version requirement

Using a newer version like cmake 3.21 (2022-06) is too aggressive. Let's downgrade cmake to the original 3.11 version.

Thing is, FetchContent_Populate has been introduced in CMake 3.14. CPM is requiring cmake 3.14 too. So I guess we can go there.
I don't think 3.21 is too new anyway, it's fairly easy to upgrade cmake and shouldn't break anything. What is your use case and why you need to downgrade?

Can you add in the CI a matrix to test CMake 3.14, latest (I don't think 3.11 will work), I recommend using https://github.com/lukka/get-cmake

As easy as it is to upgrade, using a lower version of cmake in order to provide an out of the box experience is also important.
As an example, Ubuntu 20.04 provides a cmake of 3.16, while Visual Studio 2019 provides cmake as 3.20.
Maybe setting the minimum version to 3.14 is a good idea?

Can you add in the CI a matrix to test CMake 3.14, latest (I don't think 3.11 will work), I recommend using https://github.com/lukka/get-cmake

Sure. Or we can just use the action app for that: https://github.com/marketplace/actions/actions-setup-cmake
Do I need to add it to this PR?

Yes we want the PR to pass the tests, so you can add everything here.
I think I prefer https://github.com/marketplace/actions/get-cmake (for sentimental reason, not very technical):

I'm using it in other projects, it has been working for years, never breaking.
It has more star
It has been most recently updated

Again I don't know what are the difference with the other project exactly.

Tested on CMake 3.14, 3.24, latestrc. Everything looks great except for a bunch of CI matrix.
      matrix:
        use_cpm: ['ON', 'OFF']
        build_type: ['Release']
        os: [ubuntu-latest, macos-latest, windows-latest]
        cmake_version: [3.14, 3.24, latestrc]

Do we need such kind of CI update?

Okay, let's start by modifying the minimal version.

Yes we want to enforce in the CI that everything works.
I guess CMake version can be tested only on ubuntu-latest, using include statement

I found that cmake 3.14 on Windows needs to specify the PATH address manually, otherwise cmake can't find cl.exe.
If you only care about Ubuntu, I will upload a new modification

Yes because we want to test if the cmake code is working with 3.14, windows not finding cl.exe sound like a bug from an old version and we don't really care about testing that.

It makes sense. The commit now is a possible implementation. CI looks like working fine.

Sorry for taking so much time to merge, you never requested a review again so I lost track of the PR status.
Thanks for the contribution


EOF in shell script is ignored

I would like to write a configure file for a command and run it within one rule, so I write the rule as the example below.
rule test
    input:
        "a.txt"
    output:
        conf="b.conf"
        result="c.txt"
    shell:
        """
        cat << EOF > {output.conf}
INPUT={input}
OUTPUT={output.result}
PARAMETER=100
EOF

       command_x {output.conf}
        """

I found that this rule can not finish correctly, and the output of conf file is:
INPUT={input}
OUTPUT={output.result}
PARAMETER=100
EOF

       command_x {output.conf}

It means that snakemake ignore the EOF symbol in the script and write all the content in the block.

This snakefile works for me on snakemake 6.9.1:
rule all:
    input:
        'done.txt',

rule test:
    output:
        result= 'done.txt',
    shell:
        """
        cat << EOF > {output.result}
INPUT={output}
OUTPUT={output.result}
PARAMETER=100
EOF

       cat {output.result}
        """

Check you have the correct indentation inside the shell directive or post a minimal snakefile reproducing the issue.


⚠ Processors has degraded performance

In 7abec30, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 75 ms

Resolved: Processors performance has improved in 8ae9ffa.


npm build error

HI team,
I faced this CDS error.

<EMAIL_ADDRESS>build:mta C:\My work\10. Azure solutions\SCPonAzure\open-service-broker-azure\contrib\cf\cloud-foundry-cap-azure-cities
cds build/all && cds deploy && mbt build -p=cf --mtar=city-explorer-demo-app.mtar

'cds' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build:mta: cds build/all && cds deploy && mbt build -p=cf --mtar=city-explorer-demo-app.mtar
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build:mta script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
PS C:\My work\10. Azure solutions\SCPonAzure\open-service-broker-azure\contrib\cf> cd cloud-foundry-cap-azure-cities
PS C:\My work\10. Azure solutions\SCPonAzure\open-service-broker-azure\contrib\cf\cloud-foundry-cap-azure-cities> npm install -g
npm WARN notsup Unsupported engine for<EMAIL_ADDRESS>wanted: {"node":"^8.9"} (current: {"node":"12.16.2","npm":"6.14.4"})
npm WARN notsup Not compatible with your version of node/npm<EMAIL_ADDRESS>=============================================================
do I need to lower down the npm / node version ?  any change rebuild with the latest npm version ?
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@sap%2Fcds - Not found
npm ERR! 404
npm ERR! 404  '<EMAIL_ADDRESS>is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'city-explorer-demo-app'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Hi,
it sounds like you're missing an npm install before you run npm run ...
I just saw that this is missing in the readme, I'll add it right now.
Thanks for pointing that out 👍


Feature/mizugo

Codecov Report

Merging #13 (b7cd851) into main (3e981be) will decrease coverage by 0.05%.
The diff coverage is 95.65%.

@@            Coverage Diff             @@
##             main      #13      +/-   ##
==========================================
- Coverage   95.08%   95.03%   -0.06%
==========================================
  Files          21       21
  Lines         834      886      +52
==========================================
+ Hits          793      842      +49
- Misses         30       32       +2
- Partials       11       12       +1

Impacted Files
Coverage Δ

cores/entitys/entity.go
100.00% <ø> (ø)

cores/entitys/entitymgr.go
100.00% <ø> (ø)

cores/entitys/module.go
100.00% <ø> (ø)

cores/entitys/modulemgr.go
100.00% <ø> (ø)

cores/entitys/reactmgr.go
100.00% <ø> (ø)

cores/entitys/sessionmgr.go
100.00% <ø> (ø)

cores/errors/error.go
100.00% <ø> (ø)

cores/events/eventmgr.go
100.00% <ø> (ø)

cores/events/fixed.go
100.00% <ø> (ø)

cores/events/pubsub.go
100.00% <ø> (ø)

... and 11 more

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


throw err

enabled error prompt and throw error on occurring

I don't see how's that fixing the issue. We don't want to throw, we want to run all test and then only fails. See the .on('end') callback.

@SBoudrias currently there is no clue how it fails. so it would be better to stop the progress when it fails.
when it succeeds no need to throw.
if it encounters errors, no need to continue.

there is noting more need to be done, but let users know why gulp tasks can't continue.

seems i am not full understand.

the end event won't be called when errors occur,
so the idea of keeping all the tasks done is not realistic.
because the tasks are chainable only when they are correctly executed.

@SBoudrias please consider merge  this pull request and close my three issues.

I'm sorry, but this is not the correct fix. It fixes your issue, but it's breaking the expected workflow of Gulp; and by this will create new issues.
We want to fix the issue you're having, but that's not the right solution.
I'm closing this PR, but I'll leave the issue open.

what is the expected workflow?
although gulp works on streams, it still breaks when errors occur.
why should not this project?
I don't know what you means here by expected workflow.


The string 'Property Name' is not translated in the localized 'Add Entity' dialog on languages 'Czech/ French'

Storage Explorer Version: 1.16.0
Build: 20201117.3
Branch: main
Platform/OS: Windows 10/ Linux Ubuntu 16.04 / MacOS Catalina
Architecture: ia32/x64
Language: Czech/ French
Regression From: Not a regression
Steps to reproduce:

Launch Storage Explorer.
Open 'Settings' -> Application (Regional Settings) -> Select 'Čeština' -> Restart Storage Explorer.
Expand one storage account -> Tables.
Open one table -> Click the localized action 'Add' on the toolbar.
Check the strings in the localized 'Add Entity' dialog.

Expect Experience:
All strings are translated.
Actual Experience:
The string 'Property Name' is not translated.

@cristianosuzuki77 any idea why we aren't seeing translations for these in cs and fr? Resource is src/Standalone/resources/EntityEditorDialog -> HeaderPropertyName.

Rechecked today, cs and frstill in English.

Verified this issue on the build main/20221226.3. Fixed.


adding binary-chop folder containng WCET benchmark

@rasoolmaghareh Just a small thing: Perhaps you would like to change the folder name to binary-chop as discussed? I'm actually fine if you want to keep it as is. You can do:
git mv binary_chop binary-chop

Changed binary_chop to binary-chop

@rasoolmaghareh It might be a good idea to add a short description about the new binary-chop directory in README.md, as a new list item between "Copyright ..." and "Running".

I added a short description about the binary-chop directory in README.md

Thank you @rasoolmaghareh .


[MINOR] Add logo source files

Which issue does this PR close?

Part of https://github.com/apache/arrow-datafusion/issues/8754
Rationale for this change

We will soon need to modify our logo to change the name to "Apache DataFusion" and also to add a trademark symbol.
What changes are included in this PR?

Include source files for logos.
Are these changes tested?

Are there any user-facing changes?

One thing I wondered about is if you meant to commit docs/logos/DataFusion-LogoAndColorPaletteExploration_v01.pdf as well -- it looks quite cool

Motivation for adding this was that it has details of the font used in the designs. The color palette may also be useful?


The shipping information was unable to be saved. Error: "Invalid customer address id 123456"

The error appear in the cart when you cancel your order on payment gateway page and then return to cart.
Step to reproduce:

Go to the store
Login  or create an account
Add some product to the cart
Place an order via some Buckaroo payment like IDEAL with 'failed' status
Go to the first checkout step again
Click on 'Next' button
Pay attention that the error is shown and customer is not able to proceed to the next step

The reason for this behavior lies in the quote activation mechanism after an order is placed and then cancelled.
After order cancellation on the payment gateway, the user is redirected to the controller \Buckaroo\Magento2\Controller\Redirect\Process, where the quota of cancelled order is duplicated.
The duplicate process in the \Buckaroo\Magento2\Service\Sales\Quote\Recreate::duplicate creates a guest quote which is then merged with the cancelled order quote. As a result, in the new quote customer_is_guest = 1 (apparently, this is a consequence of the merge mechanism), which is the reason for the error. In this case address can not pass the validation in \Magento\Quote\Model\QuoteAddressValidator::validateForCart
As a quick fix, we can get sustomer_is_guest value and set it to the new quote in  \Buckaroo\Magento2\Service\Sales\Quote\Recreate::duplicate:
$oldQuote = $this->quoteFactory->create()->load($order->getQuoteId());
$emptyQuoteId = $this->quoteManagement->createEmptyCart();
$quote = $this->quoteFactory->create()->load($emptyQuoteId);
$quote->setCustomerIsGuest($oldQuote->getCustomerIsGuest());
$quote->merge($oldQuote)->save();
$this->recreate(false, $quote);

return $quote;

Good afternoon Pavel !
Yeah, we know about this issue which has appeared in 1.38.0
We're already in process of fixing this and issue is related not only to guest flag you've mentioned.
Anyway, thanks a lot for your advise !

Good morning Pavel !
The fix has been released within scope of https://github.com/buckaroo-it/Magento2/releases/tag/v1.38.1
Thanks again for addressing that issue to us !


Some patches for djinni veterans

This change:

Prints a nice error message if the user is missing cmake.  I tested it by running the build in docker with cmake removed
Moves the docker tests out of the all target for the test suite.  I checked they still work by running make linux_docker.
Patches docs in a couple of places to make the Docker dependency easier to find.

In response to discussion at: https://github.com/dropbox/djinni/pull/140#issuecomment-155940221
✓ I have previously signed the Dropbox CLA

Automated message from Dropbox CLA bot
@pwais, it looks like you've already signed the Dropbox CLA. Thanks!


highlightSelectionMatches is causing changing glyphs upon selection of Arabic text

Current Behavior: Upon selection of Arabic text with highlightSelectionMatches: true, the glyphs are getting changed. Please have a look a the video below.

Expected output: The selection should not change the glyphs.

This appears to be a Chrome bug — Firefox behaves properly in this case, but Chrome renders these characters differently based on whether there's a <span> boundary between them. This is unlikely to be something that we can work around inside CodeMirror, so your best bet is to report the issue to the Chrome team (you can reproduce it outside of CodeMirror by adding/removing spans in such text, and noting the difference in text rendering).

Apologies for late reply.
I will log a bug with the Chrome team for this. Thanks!

FYI: I have logged a bug with the chromium team for this.
https://bugs.chromium.org/p/chromium/issues/detail?id=740937

Thanks!


Fake rule-id with the rule label when rules don't have unique ids

Fixes https://github.com/runtimeverification/haskell-backend/issues/3913

in Booster, we change the representation of rules to enforce then to have a UniqueId. When internalizing a rule, we see that it does not have one, we use the rule label. If that is not there to, we use Unknown.
In Kore, we do not change the representation of rules, but rather apply the same trick to the results, i.e. we fall back to the label or "Unknown"

this approach is a workaround to make rules that are dynamically generated by pyk visible.
The long-term solution to this problem would be to enforce all rules produced by the K Frontrend/pyk to have unique ids.

Seems fine to me! I didn't look at the code though.


lemurs: init at 0.3.1

Description of changes
Adds lemurs, a tty based display manager. I have tested it runs and accepts inputs.
This resolves #246035

Things done

Built on platform(s)

[x] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 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.

This should fix all aforementioned issues. Thanks for being patient!


delete usize type

refer to:https://docs.cairo-lang.org/language_constructs/integer-types.html

This change is

yes let's keep it

https://github.com/cairo-book/cairo-book/blob/bdb74f2bf4c0b450ba3e0b08fc1059d4a236ac87/listings/ch08-generic-types-and-traits/listing_impl_aliases/src/lib.cairo#L17
https://doc.rust-lang.org/book/ch03-02-data-types.html
in rust:usize types depend on the architecture of the computer your program is running on.
usize  is just an alias to u32

@enitrat

yes, I know


Update site-design-rest-api.md

Small typo, quote characters missing in the code example of the ApplySiteDesign.
Category

[ ] Content fix
[ ] New article
[x] Example checked item (delete this line)

DELETE THIS LINE BEFORE SUBMITTING | For the above list, an empty checkbox is [ ] as in [SPACE]. A checked checkbox is [x] with no space between the brackets. Use the PREVIEW tab at the top right to preview the rendering before submitting your issue.

Related issues

fixes #issuenumber
partially #issuenumber
mentioned in #issuenumber

DELETE THIS LINE BEFORE SUBMITTING | If this fixes (aka: closes) or references an issue, please reference it here. This helps maintaining the issue list as it will (1) link the PR to the issue & (2) automatically close the issue when this PR is merged in.

What's in this Pull Request?

DELETE THIS LINE BEFORE SUBMITTING | Please describe the changes in this PR. Sample description or details around bugs which are being fixed.

Submission guidelines

!!IMPORTANT!! - All submissions must complete the baseline sections included in this template. Ignoring or deleting this template may result in closing the issue with the label type:incomplete-submission.
Follow our guidance on How To Create Good Pull Requests.
Target the master branch of this repo. Released documents are in live branch.

DELETE THIS SECTION BEFORE SUBMITTING

Docs Build status updates of commit 7d8394b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/declarative-customization/site-design-rest-api.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

TY... in the future, please complete the form for new PR's following the provided guidance in the template for a new PR. This helps us review & process PR's more efficiently.

Docs Build status updates of commit b6412a8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/declarative-customization/site-design-rest-api.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Update pubspecs for dart2.0 and angular 5 stable

Note, I still need to update the CHANGELOGs. But running this through travis while I work on those.

Leave the SDK lower-bound constraints as-is. There may be folks unable to roll to stable due to dependency issues.

I was used to something showing up on the display to show 'allow_failures'
– just not w/ build steps?
On Mon, Aug 6, 2018 at 1:43 PM Andrew Lorenzen<EMAIL_ADDRESS>wrote:

@alorenzen commented on this pull request.
In .travis.yml
https://github.com/dart-lang/angular/pull/1544#discussion_r208022929:

@@ -48,6 +48,7 @@ jobs:

See https://github.com/dart-lang/angular/issues/1114.
allow_failures:
- env: PKG="examples/github_issues"

env: PKG="examples/hacker_news_pwa"

Yes it does. It allows travis to continue to follow-up stages even if this
one job had failures.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/angular/pull/1544#discussion_r208022929,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABCiv4RkYyC8D9g05_c9DpKDu2hpAxXks5uOKpUgaJpZM4Vw4WB
.


feat(Collect) Attempt to redesign the Collector step

The current CollectStep is fairly confusing. It is not only batching messages but it embeds the logic that executes application code when the batch is full. This logic is itself represented as a ProcessingStrategy, but the Collector is not connected to this logic through ProcessingStrategy chaining as usual.
The idea here is to make the collect idea more modular.
It introduces a BatchStep and an UnbatchStep. These processing strategies are simpler. The first accumulates messages in a batch and submit the batch to the next step, the second does the opposite. It takes a batch and submits individual messages.
The idea is that the CollectStep and the ParallelCollectStep could be simply built by chaining two steps.
BatchStep -> RunTask
This process though has a few limitations.

Summarized here: https://github.com/getsentry/arroyo/issues/125. Processing strategies, today, takes a Message object in the submit method. This requires the message object to have a partition and an offset. When the message object represents a batch, partition and offset makes no sense. So we need to decide what to do about this scenario. Either we preserve the interface as it is and give up on modularity (or find a different way to make pipelines modular). Or we change the interface.
RunTask only commits one message, It is not capable of committing multiple offsets for different partitions for a batch. But this is easily fixable.

BatchStep and UnbatchStep manage RejectedMessage exceptions from the following steps by preserving the state and retrying.

More changes to come

I think you should rewrite https://github.com/getsentry/arroyo/blob/main/arroyo/processing/strategies/factory.py to use the new strategy. It may make it more obvious how the new BatchStep is going to replace Collect and ParallelCollect inside the arroyo library itself

@lynnagara , I'd say, not yet. There are quite a few corner cases to deal with with batch and unbatch. I'd rather try it first on a less widespread scenario. ConsumerStrategyFactory powers every single snuba consumer.
Will add the unit test and the exmple

End to end test added.
Last missing thing is the example

Example added

@lynnagara  I think I adapted it to the changes introduced by https://github.com/getsentry/arroyo/pull/134 and addressed all the comments but the one on the example. I need clarifications on that one.
Now I guess it needs to be reviewed again as the whole implementation is quite different.


Relations of type error

I've added he as my new Internationalization and tried to fill my global in the he version and using the option fill in from another locale and when I click save I get the error that is displayed in the image.

Figured it out - my strapi version was unstable.


Swapping out google.streaming for google-resumable-media in GCS downloads.

Check out https://googlecloudplatform.github.io/google-resumable-media-python/0.0.2/ for details on the new library.

I filed https://github.com/GoogleCloudPlatform/google-resumable-media-python/issues/5 to carry on the discussion about streaming the contents in a more memory-efficient manner (when possible).
For now, I am going to merge this based on an LGTM from @jonparrott (given in chat)


Fixed script for kicad 6

Applied these fixed
Migrate to KiCAD 6
Fixed script for kikad v6

Would you ever consider opening a pull request to yaqwsx's repo? The library symbol download is very useful

Hi, I am sorry for a late response. Thank you for this update, I highly appreciate it. I have already created pull request to yaqwsx's repo, but there is some more work I have to do before the pull request is accepted. You can see the details here: https://github.com/yaqwsx/EasyEDAFootprintScraper/pull/4


DP-3645 Fix search for user.js to handle relative data_directory paths

When searching for user.js to write, the current logic can't handle relative paths in the data_directory setting. This causes the "protocol" iotkit-admin command to break when using the default data directory (./data/).

Forgot to replace path.join with path.resolve

This change fixes problem with relative path but creates problem after setting / moving data directory. It has to be fixed another way.

Unfortunately modification of user.js was required. I also added information how to run agent in case of such problems if they occur.

Merged


Update existing Eloquent model from either side of a one-to-many relationship.

Why isn't it possible to update a relationship for a one-to-many (or one-to-one) relationship from both sides of the relationship? Given this set-up:
class Account extends Eloquent
{
public function users()
{
return $this->hasMany('User');
}
}
class User extends Eloquent
{
public function account()
{
return $this->belongsTo('Account');
}
}
it should be possible to do both:
Account::find(10)->users()->save(User::find(1)); // this works
User::find(1)->account()->save(Account::find(10)); // this doesn't work
to assign account 10 to user 1.
But only the first one works. The other one is generating an error: "Call to undefined method Illuminate\Database\Query\Builder::save()"
Shouldn't it be possible to save or update/attach a relationship from both sides of the relation when it has been explicitly set-up in the models via hasMany() and belongsTo()?

I am wondering if there's a method like 'attach' for one-to-many relation to update multiple entries from 'many' end of the relation.
For example I have Ingredients and IngredientTypes in one-to-many relation. I have ingredients already in the DB. So how can I associate multiple Ingredients together with a certain IngredientType.

$user = User::find($id);
$user->update($array);
$user->email()->delete();
$user->email()->createMany($array['emails']);


x problematic tests

Disables tests from src/desktop/auction -- these were not run prior to changes in https://github.com/artsy/force/pull/3877, but some were enabled optimistically.  Here all tests in that directory are turned off for the moment, and we can coordinate with the auctions team to enable as priority allows.
I ran this build 5 times without hitting a timeout, so I believe this should address the flakiness we've experienced since last night.

Thanks @eessex!

@eessex Are you keeping a list of tests for the auctions team?

Follow up ticket is here: https://artsyproduct.atlassian.net/browse/AUCT-320


Crash when trying to use Uncrafting table

crash-2022-12-25_02.04.37-fml.txt

architectury-1.32.66
mcpitanlibarch-1.3.5-1.16.5-forge
UncraftingTable-forge-1.1.7

Same issue here!
I installed it for the modpack "Create: Above and Beyond",
crash-2023-07-12_19.43.43-fml.txt
crash-2023-07-12_19.45.53-fml.txt
Currently:
MC version is 1.16.5
Forge Version is 36.2.20
Mod version is 1.2.4 but crashed using 1.2.5 as well. (UncraftingTable-forge-1.2.4.jar) & (UncraftingTable-forge-1.2.5.jar)
Lib version is 1.6.10. (mcpitanlibarch-1.6.10-1.16.5-forge.jar)
Exception message: "java.lang.ClassNotFoundException: net.minecraft.world.level.block.Block"


Mini-max sum problem: C# solution

Added a new C# based solution for mini-max sum problem.

@RyanFehr I saw that you've marked the optimal time complexity of the solution as O(1) even though there is a for loop in the algorithm steps. I thought through it and came up with below rationale on why you might be thinking so:
Even though there is a for loop in the algorithm steps but the problem statement says that number of elements will always be fixed at 5. Since the number of input is not variable so complexity will be O(1).
Since the number of input elements is fixed at 5 so the same solution can be implemented using few if-else statements also.
Do you also have similar thoughts or you have marked it as O(1) time complexity for a different reason altogether?


Does Tranquility support rejectionPolicy: messageTime ?

According to http://druid.io/docs/latest/ingestion/stream-pull.html I can set "rejectionPolicy": {"type": "messageTime"} to load non-realtime, but consequent data. I set this option in Tranquility configuration file, but I didn't manage to load my data via Tranquility server into Druid. Does Tranquility support this option?

Hey, any update? I'm considering using Tranquility but I'm more interested in messageTime too.


[DO NOT MERGE] Prow test

@myidpt: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
0357afb4e18fd3ef1d9eecbe596c06d8c82ad9e4
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
0357afb4e18fd3ef1d9eecbe596c06d8c82ad9e4
link
/test istio-unit-tests

prow/istio-presubmit.sh
0357afb4e18fd3ef1d9eecbe596c06d8c82ad9e4
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test istio-presubmit

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
0357afb4e18fd3ef1d9eecbe596c06d8c82ad9e4
link
/test istio-unit-tests

prow/istio-presubmit.sh
0357afb4e18fd3ef1d9eecbe596c06d8c82ad9e4
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yutongz @sebastienvas The presubmit test is still failing :(

/retest

@myidpt: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
0357afb4e18fd3ef1d9eecbe596c06d8c82ad9e4
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test istio-presubmit


Support multiple content types for a single endpoint

With an openapi yaml schema that has this content:
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/REDACTED'
          application/x-www-form-urlencoded:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/REDACTED'
          multipart/form-data:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/REDACTED'
        required: true

The generated client has this method:
def _get_kwargs(
    *,
    client: AuthenticatedClient,
    multipart_data: List[REDACTED],
    json_body: List[REDACTED],
) -> Dict[str, Any]:
    url = "{}/api/redacted/".format(client.base_url)

    headers: Dict[str, Any] = client.get_headers()
    cookies: Dict[str, Any] = client.get_cookies()

    json_json_body = []
    for json_body_item_data in json_body:
        json_body_item = json_body_item_data.to_dict()

        json_json_body.append(json_body_item)

    multipart_multipart_data = []
    for multipart_data_item_data in multipart_data:
        multipart_data_item = multipart_data_item_data.to_dict()

        multipart_multipart_data.append(multipart_data_item)

    return {
        "url": url,
        "headers": headers,
        "cookies": cookies,
        "timeout": client.get_timeout(),
        "files": multipart_multipart_data,
    }

The diff from the client generated by version 0.9.2 is that it now takes a multipart_data parameter which is now used to populate the files field on the returned dict.
However the json field was removed and the json_body parameter is thus unused.  This breaks clients that are passing the json_body field.
Adding it back fixes it,  i.e.
    return {
        "url": url,
        "headers": headers,
        "cookies": cookies,
        "timeout": client.get_timeout(),
        "json": json_json_body,          # <--- HERE
        "files": multipart_multipart_data,
    }

Interesting, I don’t think we’ve ever added (at least intentionally) support for multiple content types in one endpoint. How do you think this would be most ergonomic in the generated client? Only one content type can actually be sent so the function definition should indicate that somehow.
Should there be a separate function per content type? Or maybe function overloading?

Maybe make both parameters optional, and then raise an exception if both are set, or if neither is set?

@dbanty it turns out that this could be solved by explicitly setting parser_classes = [JSONParser] in the Django view, which prevents the schema generated by drf-spectacular from including the multiple content types.

Glad you found a solution @dpursehouse! Would still love to add support for this some day, I'm sure there are others who would benefit from it.

@dpursehouse

it turns out that this could be solved by explicitly setting parser_classes = [JSONParser] in the Django view,

Do you know if this breaks the DRF Web browsable API? (e.g https://restframework.herokuapp.com/) I assumed that the form_data portion was used by the browsable API, and disabling form_data could have unexpected consequences.

However the json field was removed and the json_body parameter is thus unused. This breaks clients that are passing the json_body field.

@dbanty It seems like this portion might be a bug in its own right.
When I wanted to send json_body information in a Patched request, this didn't work:
        t_partial_update.sync(
            metal.id,
            client=client,
            json_body=T(type="RED"),
            form_data=T(),
            multipart_data=T(),
        )

I had to move it to the form_data parameter for DRF to process it, but I wanted it to be passed as json_body:
        t_partial_update.sync(
            metal.id,
            client=client,
            json_body=T(),
            form_data=T(type="RED"),
            multipart_data=T(),
        )

I assume this is a limitation in httpx but it'd take some testing to be sure. Sending both a form and JSON is quite unusual. I'm guessing it just picks one to send.

For visibility, to others, @ngnpope provided a list of work-arounds for drf-spectacular here:

https://github.com/tfranzel/drf-spectacular/issues/598#issuecomment-964333108

drf-spectacular 0.21.0 has a new feature to support excluding certain parsers (content types) to help work around this issue:
SPECTACULAR_SETTINGS = {
    "PARSER_WHITELIST": ["rest_framework.parsers.JSONParser"],
 }

We have an API endpoint where we support uploading a file either as multipart/form-data or by specifying an application/json body that includes urls to the files. Sample spec:
{
  "openapi": "3.0.0",
  "paths": {
    "/api/files/upload": {
      "post": {
        "operationId": "uploadFile",
        "summary": "Upload a file by multipart or by url",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UrlUploadDto"
              }
            }
          },
          "required": true
        },
        "parameters": [],
        "responses": {
          "201": {
            "description": "Returns some random string",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "tags": [
          "files"
        ]
      }
    }
  },
  "info": {
    "title": "Single Upload",
    "description": "Test spec for files in multipart/form-data or application/json",
    "version": "0.0.1",
    "contact": {}
  },
  "tags": [],
  "servers": [],
  "components": {
    "schemas": {
      "UrlUploadDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "URL to download the file from using a GET request"
          },
          "fileName": {
            "type": "string",
            "description": "Filename to save for the file. If empty, will use the final portion of the URL path"
          },
          "mimeType": {
            "type": "string",
            "description": "Mime type of file. If empty, will use the response content type of the download"
          }
        },
        "required": [
          "url"
        ]
      }
    }
  }
}

Would love to have a feature where the codegen client would be able to support functions for both the multipart/form-data request as well as the application/json request. The current behavior will handle the multipart/form-data correctly, but the application/json requests will not work as the json body is dropped during _get_kwargs.
In my case, having entirely separate functions for each request would be preferred, as it feels like the interface is strongly typed and most clear. It would mean we'd need to generate names that may look a little long:

upload_file_by_multipart_form_data.py
upload_file_by_application_json.py
The general pattern would be to roughly look like: f"{operation_id}_by_{request_content_type}".

This would also mean that we no longer have a 1:1 relationship between the api files and the actual paths in the OpenAPI spec. I'm not sure if there is anything that relies on such an assumption?
Would be happy to contribute this feature, but did want to see if it the approach of separate functions makes sense, and is something that the community would be interested in having?

I have also run facefirst into this issue multiple times. I have a schema that is being generated by drf-spectacular for the purposes of uploading images, and it has multiple content types in the request body:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DOImageRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DOImageRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DOImageRequest'
        required: true

Unfortunately, openapi-generator only uses the first of these definitions, so I am stuck with this auto-generated client function:
async communityImagesCreateRaw(requestParameters: CommunityImagesCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DOImage>> {
        if (requestParameters.dOImageRequest === null || requestParameters.dOImageRequest === undefined) {
            throw new runtime.RequiredError('dOImageRequest','Required parameter requestParameters.dOImageRequest was null or undefined when calling communityImagesCreate.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        const response = await this.request({
            path: `/api/community/images/`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: DOImageRequestToJSON(requestParameters.dOImageRequest),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => DOImageFromJSON(jsonValue));
    }

Doh! It's trying to convert an image into JSON - clearly not what I am looking for. I have had to avoid using my auto-generated client any time I perform image uploads for this reason and manually submit data via formData. It's the only place I am not using the generated client and is a glaring violation of DRY.
However, most of the content request bodies in my schema have multiple entries in the "content" section, and I only want to specify that formData be uploaded for the image not the myriad of other models I have for which JSON works just fine.
The most elegant way I can think to do this without breaking basic functionality is this algorithm:

When multiple content-types are chosen, choose the first one (current algorithm) UNLESS
The component schema referred to contains a property whose "format" is "binary" and the first content-type does not support this (i.e. application/json). In that case, look for the first content-type which DOES support a binary format in the data (i.e multipart/form-data).


mocha escapes the grave character incorrectly in xunit reporter

Prerequisites

[x] Checked that your issue isn't already filed by cross referencing issues with the common mistake label
[x] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
[x] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
[x] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with:
node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend avoiding the use of globally installed Mocha.

Description
The mocha xunit reporter escapes the grave character (`) incorrectly in the xunit reporter when placed in the spec name. It escapes it with ` which is valid in html but not in xml causing junit parsers (specifically jenkins in my test case but I have tested it with the w3schools validator as well with the same result) to not be able to parse test results.
Steps to Reproduce
Run the following code in the terminal.
npm init --yes
npm i -D mocha
echo "const assert = require('assert');\nit('this `creates` bad xml', () => {assert.ok(true);});" > test.js
./node_modules/.bin/mocha -R xunit -O output=report.xml test.js

Then take the resulting file and run it through an xml validator or a junit test result parser.
Expected behavior: [What you expect to happen]
produces a valid xml file
<testsuite name="Mocha Tests" tests="1" failures="0" errors="0" skipped="0" timestamp="Mon, 11 Sep 2017 18:19:30 GMT" time="0.004">
<testcase classname="" name="this `creates` bad xml" time="0.001"/>
</testsuite>

Actual behavior: [What actually happens]
Produces an invalid xml file with ` instead of the "`" character
<testsuite name="Mocha Tests" tests="1" failures="0" errors="0" skipped="0" timestamp="Mon, 11 Sep 2017 18:19:30 GMT" time="0.004">
<testcase classname="" name="this `creates` bad xml" time="0.001"/>
</testsuite>

Reproduces how often: [What percentage of the time does it reproduce?]
I am able to reproduce this 100% of the time.
Versions
Happens on mocha>=3.5.1
tested on osx 10.12 and ubuntu 14.04 with node 6.11.1, 6.11.2, 6.11.3
Additional Information

closed by #3003

thanks!


Use rules_pods as a source dependency

I tried to use git_repository with rules_pods to have the latest fixes from the master branch but it looks like Bazel always looked for the pre-compiled Compiler and RepoTools under the bin directory, which only exists in a release tarball. The current workaround is to do a manual build of rules_pods and upload the release tarball somewhere.
Is the any way to use this as a host dependency of new_pod_repository so that Bazel will build rules_pods first and then use the build results as the build tools for the new_pod_repository targets?

Hey @thii  - I'm not sure what a good solution here is. We didn't want to couple the toolchain requirements of P2B to the source repo, so we've moved towards release packages.
I think source builds can be added in some capacity, but likely are out of band of the parent Bazel process.
Vendorizing
In update_pods.py it calls make to build the binary. The release packages have a makefile that simply is a noop, I believe there is a way to do source builds, but we don't do them.
WORKSPACE
A downside of using a compiled binary is it's currently difficult to build things with Bazel at the point in which a repository_rule will run ( atleast last time I looked at this and originally implemented it ).
It might be useful to sanity check the state of the world to see if anything has changed and/or reach out to bazel-discuss. Either myself or @rahul-malik can create a release tomorrow AM 👍 and we've thought about automating this process to happen on every commit as well.

I think the compiled binary is nice so everyone isn’t building the binaries locally but that shouldn’t be the only way to integrate. Automating the release helps but the project should still be possible to integrate from source
I won’t be able to try this out or create a release until next week so feel free to take this @jerrymarino.
As far as a fix, I think the bin/update_pods.py script could potentially fallback to using “bazel run” since the compiler and repotools are executable bazel targets

@thii - While we're working on a solution here, I put up a new release with what is in master currently
https://github.com/pinterest/PodToBUILD/releases/tag/0.22.0-ee8466e

@rahul-malik Thanks a lot!


AttributeError: 'MultiPolygon' object has no attribute 'exterior'

Hi Markus,
Thanks for sharing geovoronoi. I'm using it in a workflow to split polygons following k-means clustering similar to this post.
Occasionally however I run into this error:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-f68e3fdefed9> in <module>
----> 1 geovoronoi.voronoi_regions_from_coords(centroids, polygon)

~/GitHub/geovoronoi/geovoronoi/_voronoi.py in voronoi_regions_from_coords(coords, geo_shape, shapes_from_diff_with_min_area, accept_n_coord_duplicates, return_unassigned_points)
     60
     61     logger.info('generating Voronoi polygon lines')
---> 62     poly_lines = polygon_lines_from_voronoi(vor, geo_shape)
     63
     64     logger.info('generating Voronoi polygon shapes')

~/GitHub/geovoronoi/geovoronoi/_voronoi.py in polygon_lines_from_voronoi(vor, geo_shape, return_only_poly_lines)
    147
    148     # now add the lines that make up `far_points_hull` to the final `poly_lines` list
--> 149     far_points_hull_coords = far_points_hull.exterior.coords
    150     for i, pt in list(enumerate(far_points_hull_coords))[1:]:
    151         poly_lines.append(LineString((far_points_hull_coords[i-1], pt)))

AttributeError: 'MultiPolygon' object has no attribute 'exterior'

I can consistently reproduce it with quite a simple example:
centroids = np.array([[537300, 213400], [538700, 213700], [536100, 213400]])
polygon = Polygon([[540000, 214100], [535500, 213700], [535500, 213000], [539000, 213200]])
geovoronoi.voronoi_regions_from_coords(centroids, polygon)

I appreciate you saying you don't have a lot of time to work on the code but if you could give me any pointers that would be much appreciated. It only occurs on about 2 out of 180 shapes in the same area so I'd love to get over this last hurdle.
Many thanks,
Nick

Thanks, this is an interesting case.
I investigated a bit and the problem is that the voronoi regions that are created do not even lie within the shape you specified (polygon). Of course this shouldn't happen. The problem lies with how the "loose ridges" of the voronoi regions are handled. These are infinite lines and in polygon_lines_from_voronoi() I try to restrict them to a certain area by calculating finite "far points". Turns out for some configurations (like yours) these far points were not "far away enough". I changed the way they're calculated and this should fix the problem.
I pushed to changes to branch issue_7. Could you please check them out and see if it works for you? If so, I'll create a new version and publish on PyPI.

Thanks for looking at this, yes, I will check out the new branch, I have a couple of other examples I can try it on.
Just in case its useful for you to look at the code, I think the same issue is present in the scipy voronoi implementation (at least in the visualisation using voronoi_plot_2d whereas PySAL's implementation
libpysal.cg.voronoi_frames(points,` radius=None, `clip='extent')

handled it as I would have expected

Thanks for the pointer to PySAL. Looks like I implemented almost the same as I did (they also use a default radius multiplier of 2 for calculating the far points), so it should work, but please try it out first.

That's great, the new version does seem to have fixed that case however I've been running it against the other cases that I have and I'm getting a new error.
centroids = np.array([[496712, 232672], [497987, 235942], [496425, 230252], [497482, 234933],
                   [499331, 238351], [496081, 231033], [497090, 233846], [496755, 231645],
                   [498604, 237018]])
polygon = Polygon([[495555,230875], [496938,235438], [499405,239403], [499676,239474],
                 [499733,237877], [498863,237792], [499120,237335], [498321,235010],
                 [497295,233185], [497237,231359], [496696,229620], [495982,230047],
                 [496154,230347], [496154,230347], [495555,230875]])

poly_shapes, pts, poly_to_pt_assignments = geovoronoi.voronoi_regions_from_coords(centroids, polygon)

fig, ax = subplot_for_map()
plot_voronoi_polys_with_points_in_area(ax, polygon, poly_shapes, centroids, poly_to_pt_assignments)
plt.show()

The error that I'm getting now is
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/matplotlib/axes/_axes.py in _parse_scatter_color_args(c, edgecolors, kwargs, xshape, yshape, get_next_color_func)
   4289                     valid_shape = False
-> 4290                     raise ValueError
   4291             except ValueError:

ValueError:

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
<ipython-input-2-8e674a60519e> in <module>
     10
     11 fig, ax = subplot_for_map()
---> 12 plot_voronoi_polys_with_points_in_area(ax, polygon, poly_shapes, centroids, poly_to_pt_assignments)
     13 plt.show()

~/GitHub/geovoronoi/geovoronoi/plotting.py in plot_voronoi_polys_with_points_in_area(ax, area_shape, poly_shapes, points, poly_to_pt_assignments, area_color, area_edgecolor, voronoi_and_points_cmap, voronoi_color, voronoi_edgecolor, points_color, points_markersize, points_marker, voronoi_labels, voronoi_label_fontsize, voronoi_label_color, point_labels, point_label_fontsize, point_label_color, plot_area_opts, plot_voronoi_opts, plot_points_opts)
    152     plot_points(ax, points, points_markersize, points_marker, color=points_color,
    153                 labels=point_labels, label_fontsize=point_label_fontsize, label_color=point_label_color,
--> 154                 **plot_points_opts)
    155
    156

~/GitHub/geovoronoi/geovoronoi/plotting.py in plot_points(ax, points, markersize, marker, color, labels, label_fontsize, label_color, label_draw_duplicates, **kwargs)
     95         coords = points
     96
---> 97     ax.scatter(coords[:, 0], coords[:, 1], s=markersize, marker=marker, color=color, **kwargs)
     98
     99     if labels:

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/matplotlib/__init__.py in inner(ax, data, *args, **kwargs)
   1597     def inner(ax, *args, data=None, **kwargs):
   1598         if data is None:
-> 1599             return func(ax, *map(sanitize_sequence, args), **kwargs)
   1600
   1601         bound = new_sig.bind(ax, *args, **kwargs)

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/matplotlib/axes/_axes.py in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, plotnonfinite, **kwargs)
   4451             self._parse_scatter_color_args(
   4452                 c, edgecolors, kwargs, xshape, yshape,
-> 4453                 get_next_color_func=self._get_patches_for_fill.get_next_color)
   4454
   4455         if plotnonfinite and colors is None:

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/matplotlib/axes/_axes.py in _parse_scatter_color_args(c, edgecolors, kwargs, xshape, yshape, get_next_color_func)
   4295                         "acceptable for use with 'x' with size {xs}, "
   4296                         "'y' with size {ys}."
-> 4297                             .format(nc=n_elem, xs=xsize, ys=ysize)
   4298                     )
   4299                 else:

ValueError: 'c' argument has 7 elements, which is not acceptable for use with 'x' with size 9, 'y' with size 9.

I was getting a slightly different error message before with what I thought was the same example. Unfortunately I can't reproduce it now but I'm including it here incase it's useful.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-258-556d4f47d3dc> in <module>
----> 1 poly_shapes, pts, poly_to_pt_assignments = geovoronoi.voronoi_regions_from_coords(cluster_centroids_, poly_)
      2
      3 fig, ax = subplot_for_map()
      4 plot_voronoi_polys_with_points_in_area(ax, geo_shape, poly_shapes, coords, poly_to_pt_assignments)
      5 plt.show()

~/GitHub/geovoronoi/geovoronoi/_voronoi.py in voronoi_regions_from_coords(coords, geo_shape, shapes_from_diff_with_min_area, accept_n_coord_duplicates, return_unassigned_points, farpoints_max_extend_factor)
     77                                                                                accept_n_coord_duplicates=accept_n_coord_duplicates,
     78                                                                                return_unassigned_points=True,
---> 79                                                                                coords=coords)
     80
     81     if return_unassigned_points:

~/GitHub/geovoronoi/geovoronoi/_voronoi.py in assign_points_to_voronoi_polygons(points, poly_shapes, accept_n_coord_duplicates, return_unassigned_points, coords)
    266             pt = points[i_pt]
    267
--> 268             if pt.intersects(vor_poly):      # if this point is inside this Voronoi region, assign it to the region
    269                 assigned_pts.append(i_pt)
    270                 if n_assigned >= accept_n_coord_duplicates - n_assigned_dupl:

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/shapely/geometry/base.py in intersects(self, other)
    709     def intersects(self, other):
    710         """Returns True if geometries intersect, else False"""
--> 711         return bool(self.impl['intersects'](self, other))
    712
    713     def overlaps(self, other):

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/shapely/predicates.py in __call__(self, this, other, *args)
     10
     11     def __call__(self, this, other, *args):
---> 12         self._validate(this)
     13         self._validate(other, stop_prepared=True)
     14         try:

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/shapely/topology.py in _validate(self, ob, stop_prepared)
     15
     16     def _validate(self, ob, stop_prepared=False):
---> 17         if ob is None or ob._geom is None:
     18             raise ValueError("Null geometry supports no operations")
     19         if stop_prepared and not hasattr(ob, 'type'):

~/anaconda3/envs/geovoronoi/lib/python3.7/site-packages/shapely/geometry/proxy.py in _geom(self)
     31         if gtag != self._gtag or self._is_empty:
     32             self.empty()
---> 33             if len(self.context) > 0:
     34                 self.__geom__, n = self.factory(self.context)
     35         self._gtag = gtag

TypeError: object of type 'Point' has no len()

Happy to try it out again.

I pushed another update to issue_7, pls try it out.
It's basically the same problem as before (far points not placed "far away enough"); changed calc. again a little bit to place them farther away but I'm hesitating to use the same calc. as PySAL because I think their approach can quickly lead to a numerical overflow. Anyway, if the problem persists with another polygon/point configuration, try to increase farpoints_max_extend_factor when calling voronoi_regions_from_coords(). Default is 10.
Also, I added another validation so that an exception is raised when one point is assigned to two voronoi regions. This happened in your problem above and only later caused problems when trying to plot.

That's great, I have run through all of the examples that I have both for voronoi_regions_from_coords and for plot_voronoi_polys_with_points_in_area and they all work out. I have been trying them out in PySAL in parallel and there I found that I had to increase the voronoi_radius argument for some of the cases which I think is exactly the same 'not far away enough' issue.
Perhaps slightly off topic (and I'm not raising this as an issue) but do you know why the very simple case of a line bisecting two points is not implemented in any (?) of the libraries? As far as I understand, it is strictly a voronoi diagram. I hacked together a version myself but it would have been nice if it was built in.
Thanks again, I think this can be closed now.

Thanks for you contributions, I integrated the fix into the new version v0.2.0 that I just released.


Pagination

When I use $medias = $instagram->getMediasByTag('flume', 60);
It is only returning 13-17 images depending on the hashtag. Not even 20, and definitely not 60.
How can I go about getting 60 or so images via a hashtag?
Thanks for all your efforts so far.

Yeah, I have already seen it.
I use max_id parameter to paginate through medias. Some times it works and some times doesn't, it is up to Instagram.
I will look into it to find more stable method.
thank you

Well. I was so inattentive and missed it.
Gut from Russian blog really helped (https://habrahabr.ru/post/302150/#comment_9645946). Special thanks
So I released new version, please check

🙌 🙌 🙌 Working well! Fantastic work @raiym @350d. Does the getMediasByTag() method support an offset in case we want to do lazy loading?

@socca1157 please submit new issue. It seems possible

Hi. How can we specify max id in ::getMediasByTag($tag, $limit, $maxId)? It seems only that method knows it. I try to use last media ID but then it gives empty response.

@maliayas
Please see issue #11
You cannot specify media_id as max_id in tag feed (but it works with account media feed).
Work around: you can use (and save) end_cursor and start_cursor (from response) for pagination purpose


Support Uniform Function Call Syntax

It would be awesome if jakt supports UFCS

Is this also a call for currying and/or partial application? (Would also be nice if possible).

No, this actually doesn't have much to do with functional programming but it definitely helps to use the functions in a way that is more apropriate for the task. It's also great for extending the class/struct behavior outside of the class/struct definition...

If traits (parametric type system) are landed, the unified function call is for free because you can determine the set of names to look up even in a generic function. That's how Rust does it as well.

I was mistaken by how Rust uses this term, it's something different...
Anyway, let me explain the idea of how traits/protocol can help. With trait,
trait Reader {
    fn Next(&self) -> String;
}

Right now you read self as something special. It doesn't have to be, not in Haskell's typeclass, for example. You can understand a trait as a concept that the type that implements it must satisfy, while each function is just a free function that lets you do
let tok = Next(reader);

And because a type implements Reader, you can now call reader.Next() as if impl works as adding an extension method - only in the context of generic function like this
fn foo<T: Reader>(reader: &mut T) -> ()
{
    let tok = reader.Next();

It looks like golang interfaces a little…? 🤔
(Those are pretty neat in my opinion; itʼs even a little bit more: the compiler finds whether trait/protocol is met and takes care of resolving the type of a value)


Austrian IBAN returns incorrect BIC

Austrian IBAN numbers like AT021420020010147558 return website-urls in their BIC field.
Expected BIC: EASYATW1XXX
What you get: www.easybank.at
tested on https://openiban.com/

Thank you for reporting this issue. I've just fixed it!