Spinning annotations during creation

Hey,
I noticed that every time that the ARViewController is presented, all the annotations shortly spin over the screen.
Edit: I think that the bug is in the filtered heading. Every time that the VC is presented, the heading start to increment from zero to the actual heading
 // First real reading after startTracking? Making filter catch up
 if self.catchupHeading && self.heading != 0
 {
   sleep(3)
   self.filteredHeading = self.heading
   self.catchupHeading = false
   print("filtered heading \(self.filteredHeading)")
 }

In principle this section works, but not in reality. I put a timer to check if self.heading takes some time to be updated.
What I'm seeing is that sometime filteredHeading is close to zero and sometime and sometime is close to the real heading value.
Edit edit:
of course that sleep time is useless over there. At that point self.heading is already a bad value.
Post below for the solution.

PARTIAL SOLUTION:
change ublic func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) with
 public func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)
    {
        // filteredHeading is not updated here bcs this is not called too often. filterHeading method should be called manually
        // with display timer.

        if newHeading.headingAccuracy > 15 { // play with this number
            print("Low heading accuracy")
            return
        }

        if newHeading.trueHeading < 0
        {
            self.heading = fmod(newHeading.magneticHeading, 360.0)
        }
        else
        {
            self.heading = fmod(newHeading.trueHeading, 360.0)
        }
    }

Hm, I had that problem that is why I used catchupHeading, I tested it and annotations always appear where they should at start, without rotation. This might depend on device or something. The solution might also be enabling calibration(Like on compass app when you open it)
I will definitely test it this week, thx for the report.

I've added ARTrackingManager.minimumHeadingAccuracy property with default value of 25.
I haven't been able to reproduce the spinning, even when I get headingAccuracy of 25, it doesn't spin, annotations show momentarily and slowly come to true heading as it changes. I will test it more tomorrow on other devices.
I've also added minimumHeadingAccuracyToShowHeadingCalibration property that allows compass calibration, but couldn't test it since it wasn't ever called for me. Default value is 0 - meaning it will never show calibration.

To see the spinning of course the phone must heads a direction far from the North, while presenting the view controller.
As you said, it might be an issue related to different devices. I'm using an iPhone SE, unfortunately I don't have any other device to test.
With the update now it seems working like a charm. I will do some more tests but for the moment I would say that the spinning is gone.

Hey @DanijelHuis,
what I've seen so far about this solution
if newHeading.headingAccuracy < 0 || newHeading.headingAccuracy > self.minimumHeadingAccuracy
        {
            print("Bad heading accuracy")
            return
        }

is that sometimes the heading accuracy never get below minimumHeadingAccuracy (in this case I'm testing with value 25). So the app gets stuck inside that 'if' waiting for a better heading accuracy, with the result that the annotations are not displayed.
Sometimes happens that putting the app in background and resuming it gets unstuck, showing the annotations again. Sometimes simply nothing happen.
I cannot understand if it's a problem related with my device compass or something else

Since the compass is obviously very inconsistent, we'll have to find another solution to spinning problem.
version 1.1 of the library had something like this:
       if(fabs(self.filteredHeading - self.heading) > 50)         {             self.filteredHeading = self.heading         }
It would make it catchup heading if it was lagging behind, maybe that could help if you put it at top of filterHeading method.
Since I cannot reproduce this(I've tried on 4 devices - two iphone 5, ipad 2 mini and ipad 4), It would be really helpful if you could put this:
       NSLog("\(newHeading.headingAccuracy)") // Don't use print() because it doesn't show time
at top of didUpdateHeading and paste results here when spinning happens. From what you are saying it is like you get some very wrong reading at start and then start getting good readings very soon after that. If that is the case maybe I could just not filter heading first few seconds after start.

Here what happen leaving all as your last commit, only using minimumHeadingAccuracy = 50.

Disregarding location: age: -0.485254049301147, ha: 3363.0
Disregarding location: age: -52.8836910128593, ha: 65.0
2017-05-23 22:52:19.884185+0200 MonumentFinder[20048:6665206] 180.0
Low heading accuracy
2017-05-23 22:52:19.886312+0200 MonumentFinder[20048:6665206] 25.0
2017-05-23 22:54:16.870303+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:16.895072+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:16.945322+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:16.971603+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:16.995182+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:17.020308+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:17.045099+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:17.070262+0200 MonumentFinder[20048:6665206] 30.0
2017-05-23 22:54:17.094876+0200 MonumentFinder[20048:6665206] 30.0
......

Very first run. I had 30.0 for a while, then little higher and at the end 15.0
I did several runs and it always start with 180.
Trying with Here what happen leaving all as your last commit, only using minimumHeadingAccuracy = 120 leads more on less to the same result.
But I sill have the problem that the annotations are not presented until a wake after putting the app in background. Looking at the log it should be out from if newHeading.headingAccuracy > self.minimumHeadingAccuracy. Then I don't understand what's going on. My code for ARViewController should be fine. I have multiple prints saying how many annotations are effectively loaded and presented. I'm quite sure that I hadn't this problem without the headingAccouracy check

But I sill have the problem that the annotations are not presented until a wake after putting the app in background.
This should be easy to debug by putting breakpoint and looking at the frames(in ARPresenter.layout...) or maybe by debugging "view hieararchies" in xcode. The only time I had annotations missing from the screen is when my location couldn't be found.

Thx for the logs, I'll try to simulate your headings and see what happens.

I've added fix to ARTrackingManager, it temporarily disables filtering if heading difference(current heading - previous heading) is greater than 10°. This is done only first 5 seconds after first heading is received.
ARTrackingManager line 269.

I'm doing some testing and for the moment it seems to work fine. No spinning annotations and not delay or stuck in the annotations presentation.

Ok, the problem with not appearing annotations was definitive my fault,  an error in layoutSubview.
But the spinning is also definitive gone after the last fix.
I still have some trouble with the compass accuracy but I have the feeling that its related with the device/iOS.
If you want you can close the thread.


Subfolders - Addition

Hey @Andre601! could you possibly add support for subfolders to the shortcut expansion, i do have quite a few shortcuts and it would be better to organize em a lil w folders

Have you tried to add the folder name to the file? Like folder/file? Not sure if that actually works. May work on it in the future if it doesn't.

like test/%parseother_{superior_island_leader}_{score_variables_island-wart-deposited_int}% if that shortcut is in a folder named test?

Uh, no?
I meant %shortcut_folder/file% to access file.txt in a subfolder called folder. I haven't tested this, but it may work... If not then I have to look at getting it to work somehow.

ohh so u mean renaming the file to include its folder name?

ohhh u mean make a new shortcut that redirects to the other shortcut?

i tried this

but ye it didnt work

if you do any testing yourself and find a solution @ me and let me know thankss 😙

i tried this

but ye it didnt work

I didn't mean like that.
I meant to use %shortcut_folder/island_wheat_deposit% where you currently use %shortcut_island_wheat_deposit%...
Obviously did it not work fo you since the expansion still looks for the file in the Shrtcuts folder.

ohhh so replace the placeholder in the menu

oooo u r giga smart! yee it works! thanks @Andre601 ❤


Non rails worker settings

Pass in worker settings with strings like "20.minutes" converted to standard integers and encrypted v2:{} strings decrypted for non-rails workers.
Follow-up to https://github.com/ManageIQ/manageiq-providers-vmware/pull/836#discussion_r1013354546
As an example,
class ManageIQ::Providers::Vmware::InfraManager::EventCatcher < ManageIQ::Providers::BaseManager::EventCatcher
  self.worker_settings_paths = [
    %i[http_proxy vmwarews],
    %i[log level_vim],
    %i[ems ems_vmware]
  ]

We'll get:
worker_options[:settings]
{:worker_settings=>{:count=>1, :cpu_request_percent=>5, :cpu_threshold_percent=>100, :gc_interval=>900, :heartbeat_freq=>10, :heartbeat_timeout=>120, :memory_request=>524288000, :memory_threshold=>2147483648, :nice_delta=>1, :parent_time_threshold=>180, :poll=>1, :poll_escalate_max=>30, :poll_method=>"normal", :starting_timeout=>600, :stopping_timeout=>600, :flooding_events_per_minute=>30, :flooding_monitor_enabled=>true, :ems_event_page_size=>100, :ems_event_thread_shutdown_timeout=>10, :ems_event_max_wait=>60, :rails_worker=>false}, :http_proxy=>{:vmwarews=>{:host=>nil, :password=>"password", :port=>2, :user=>nil}}, :log=>{:level_vim=>"debug"}, :ems=>{:ems_vmware=>{:blacklisted_event_names=>[], :event_handling=>{:event_groups=>{:addition=>{:critical=>nil}, :power=>{:critical=>nil}}}, :capture_batch_size=>250}}}

And specifically if we set a v2 encrypted password for the proxy:
worker_options[:settings][:http_proxy]
{:vmwarews=>{:host=>nil, :password=>"password", :port=>nil, :user=>nil}}

https://github.com/ManageIQ/manageiq/issues/21992

@miq-bot cross-repo-tests https://github.com/ManageIQ/manageiq-providers-vmware/pull/837

NOTE here is an example of the worker_settings_paths in a subclass https://github.com/ManageIQ/manageiq-providers-vmware/pull/837/files#diff-674ef2ddfffe55d353d61c9461885bea5c9b75a9bc392c3952c61f0cf5710bceR5-R9


Fix t_L calculation for work-conserving policies on uniprocessor

In this PR, t_L (as defined below Eq. 3 in RTSS17) is corrected to be max{l_i, min{r_x^max | J_x \in J\J^P, J_x is an eligible job at max{r_x^max, l_i} according to Definition 4 in RTSS17}}, instead of max{l_i,r_j^max}. This solves the problem where the processor is sometimes incorrectly left idle when it should not be according to the work-conserving policy.
In the following example, the original code incorrectly reports the latest start time of T1J1 after S1 to be 8 (as can be seen in the left graph). This should not be possible using a work-conserving as T0J0 is certainly released at time 0. The right graph shows the SAG generated by the code in this PR, which correctly determines the LST of T1J1 after S1 to be 0.
Example:
Task ID, Job ID, Arrival min, Arrival max, Cost min, Cost max, Deadline, Priority
0,0,0,0,2,2,10,2
1,1,0,8,2,2,10,1

Again, thanks for noticing and debugging the issue and for the patch. I haven't checked the logic, but the code looks nice and clean, so I'll go ahead and merge based on your and Geoffrey's comments.


StyleGAN on OASIS data - Zhixuan Li (46148991)

Task
The task is to utilize a generative model on the OASIS brain dataset, with the goal of generating "reasonably clear images".
Model
The model used for the given task is styleGAN, which is built upon regular GAN models with advanced features, please refer to the README.md for a detailed introduction.
Result
The result of the task shows a sample of highly resembled fake images generated by the styleGAN model, which is also displayed in the README.md file.
Content
This pull request consists of :

4 Python scripts:
- dataset.py: reads and pre-processes the datasets from rangpur, plots a sample of real images read from the datasets;
- modules.py: constructs the styleGAN model, including the generator and discriminater;
- train.py: implements the full training procedure of the styleGAN model, generates the losses plot;
- predict.py: loads the generator and plots a sample of fake images generated by the generator.
An image folder containing a sample of real images, a sample of generated images, a losses plot from training process and a demonstration figure from the reference paper;
A README.md file that comprehensively documents this task.

Document

Title:
Good
Address probelm:
Good
Working Principle:
Good
Figure visualization
Good
dependecy
Good
inputs and outputs description:
Good
training plot:
Good
readme using markdown:
Good
preprocessing description:
Good
dataset split description
Good

Suggestions:

List all the transformations which have been used during preprocessing

Check the files:

modules.py
Good
dataset.py
Good
train.py
Good
predict.py
Good

Overall:

solve the problem:
Yes
TF/torch implementation:
Yes
Design quality:
Good
code comments:
Good
Difficulty:
StyleGANv1 - Hard

Marking
Good Practice (Design/Commenting, TF/Torch Usage)
Adequate design and implementation
Good spacing and comments
Header blocks missing -1
Recognition Problem
Solves problem
Driver Script present
File structure present
Shows Usage & Demo & Visualisation & Data usage
Module present
Commenting
No Data leakage
Difficulty: Hard
Commit Log
Meaningful commit messages
Progressive commits used
Documentation
ReadMe good
Model/technical explanation
Good Description and Comments
Markdown used and PDF submitted
Pull Request
Successful Pull Request (Working Algorithm Delivered on Time in Correct Branch)
No Feedback required
Request Description good


Enable v3.0.11+ servers to interoperate with v3.0.10 servers for notify verb

- What I did
Enable v3.0.11+ servers to interoperate with v3.0.10 servers for notify verb
- How I did it
Added some defensive code to notify_verb_handler.dart to set ttln to default value of 24 hours if it is null or 0. This is necessary in order to preserve backwards compatibility with version 3.0.10 servers, which will reject ttln of 0. We can remove this code again once all servers are at 3.0.11+
- How to verify it

Tests should pass
However since our test environment currently doesn't have interop tests between different server versions, the real verification will be to build a new canary 3.0.11 release and verify that the problem is no longer occurring. See https://github.com/atsign-foundation/apps/issues/495 for context

- Description for the changelog
Enable v3.0.11+ servers to interoperate with v3.0.10 servers for notify verb

Added additional IF-Conditions around ttl_ms and ttb_ms because TTL and TTB metadata also cannot be less than 1(in the older server version).

…. and values of 0 wouldn’t apply for notify verb, hence localizing the
change to just the notify verb handler

LGTM … will merge to trunk and do a canary release (after lunch 😀)


Notebook Cell Metadata is not udpated in viewModel when reverting changes to a cell in Diff View

Revert https://github.com/microsoft/vscode/pull/225201
Create a nb
Add a cell
Stage this file (or commit it)
Make a chnage to code in the cell
Open diff viewer
Revert code changes
Add a break point in diffElementViewModel.ts first line of the method checkMetadataIfModified
Here  viewmodel (this.modifeid.metadata) the DiffNestedCellViewModel.metadata = {metadata: {}}
However in the main document model (this.mainDocumentTextModel) the metadata of this cell is {metadata: {}, attachments: undefined}

I.e. metadata in the cell viewmodel isn't updated when reverting cell changes.

Duplicate of https://github.com/microsoft/vscode/issues/225204


How can we change form-data param name

I have an api which uses form-data name images instead of file.
How can i add file in form data using this name?

You should probably look at the additionalParams example
Something like
methods: {
      sendingEvent (file, xhr, formData) {
        formData.append('images',  formData.name);
      }
    }


Swagger fails to load - missing role attribute

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
# In utils.py under fastapi.openapi I have to comment this line to prevent "Failed to load" in Swagger UI
#  operation_security.append({security_name: security_requirement.role})

Description
My Swagger UI used to work well, but suddenly I get a "Failed to load API definition", with the error below:
 File "..../lib/python3.9/site-packages/fastapi/openapi/utils.py", line 84, in get_openapi_security_definitions
    operation_security.append({security_name: security_requirement.role})
AttributeError: 'SecurityRequirement' object has no attribute 'role'

If I comment the line in utils.py, the /docs works again.
#  operation_security.append({security_name: security_requirement.role})
Everything in the API works, it's just the OpenAPI that fails, unless I comment the above line.
For the note, I use oauth2 scheme with scopes:
oauth2_scheme = OAuth2PasswordBearer(
    tokenUrl="/login",
    scopes={
        Role.GUEST["name"]: Role.GUEST["description"],
        Role.EDITOR["name"]: Role.EDITOR["description"],
        Role.MANAGER["name"]: Role.MANAGER["description"],
    },
)

Operating System
macOS
Operating System Details
No response
FastAPI Version
0.87.0
Python Version
Python 3.9.6
Additional Context
No response

Hi, no I didn't change fastapi/openapi/utils.py
This is the def raising the exception. If I remove the comment (#) I get "Failed to load API definition".
def get_openapi_security_definitions(
    flat_dependant: Dependant,
) -> Tuple[Dict[str, Any], List[Dict[str, Any]]]:
    security_definitions = {}
    operation_security = []
    for security_requirement in flat_dependant.security_requirements:
        security_definition = jsonable_encoder(
            security_requirement.security_scheme.model,
            by_alias=True,
            exclude_none=True,
        )
        security_name = security_requirement.security_scheme.scheme_name
        security_definitions[security_name] = security_definition
#        operation_security.append({security_name: security_requirement.role})
    return security_definitions, operation_security

Wrong git manipulation has modified the fastapi/openapi/utils.py file and caused the error


Updated list operation to support 1000+ objects.

Amazon now recommends using GET Bucket (List Objects) Version 2.
Continuation token can now be used to retrieve the next set of objects past 1000.

Unstable. Amazon returns error "The continuationToken provided is not correct."

@sharikov Thanks for starting on this. Is there something we can do to fix the continuationToken?

@AnthonyMDev I figured out what was causing the continuationToken mismatch error. Amazon S3 sometimes include + characters in the tokens, which doesn't pass properly. I've encoded the token now and it works as intended. Thanks for creating this project. It's very simplistic, easy and has been very useful.

@sharikov

Also, we may want to consider adding a helper method to the response object to get the next items in the list. It would just call the list method with it's continuation token and return the new request.

@AnthonyMDev I'll close this and wait until all the fixes are merged before continuing on with this. The helper method is a good idea, I was thinking about adding it before. Not very familiar with unit testing, but let me try it out. If I have any issues, I might need your help. Thanks.


Restoring probably lost-in-merge intrinsic function for interpreter

The function llvm.bswap.i32 was not linked as a primitive for the interpreter.

Duplicate of #11582?

D'ough!


Oops; flutter has exited unexpectedly: "Stack Overflow".

Steps to reproduce
flutter run --machine --start-paused -d 00008130-000C3D0A2EE3803A --devtools-server-address http://<IP_ADDRESS>:9100/ --target /Users/likelion/Desktop/chika_client_project/lib/main.dart --flavor dev --enable-impeller

Expected results
Flutter builds successfully, but soon the following issue occurs repeatedly, and it seems that the frequency increases with each build.
Actual results
exception
StackOverflowError: Stack Overflow
#0      _StringBase._createOneByteString (dart:core-patch/string_patch.dart:249:3)
#1      _StringBase.createFromCharCodes (dart:core-patch/string_patch.dart:151:16)
#2      new String.fromCharCodes (dart:core-patch/string_patch.dart:22:24)
#3      _Utf8Decoder.decodeGeneral (dart:convert/utf.dart:668:31)
#4      _Utf8Decoder.convertSingle (dart:convert-patch/convert_patch.dart:1857:14)
#5      _readFQDN (package:multicast_dns/src/packet.dart:165:24)
#6      _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7      _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#8      _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#9      _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#10     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#11     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#12     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#13     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#14     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#15     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#16     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#17     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#18     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#19     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#20     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#21     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#22     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#23     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#24     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#25     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#26     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#27     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#28     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#29     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#30     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#31     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#32     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#33     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#34     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#35     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#36     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#37     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#38     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#39     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#40     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#41     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#42     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#43     _readFQDN (package:multicast_dns/src/packet.dart:147:38)
...
...
#7203   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7204   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7205   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7206   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7207   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7208   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7209   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7210   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7211   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7212   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7213   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7214   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7215   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7216   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7217   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7218   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7219   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7220   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7221   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7222   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7223   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7224   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7225   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7226   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7227   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7228   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7229   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7230   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7231   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7232   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7233   _readFQDN (package:multicast_dns/src/packet.dart:147:38)
#7234   decodeMDnsResponse.readResourceRecord (package:multicast_dns/src/packet.dart:244:36)
#7235   decodeMDnsResponse (package:multicast_dns/src/packet.dart:372:38)
#7236   MDnsClient._handleIncoming (package:multicast_dns/multicast_dns.dart:238:46)
#7237   MDnsClient.start.<anonymous closure> (package:multicast_dns/multicast_dns.dart:155:47)
#7238   _rootRunUnary (dart:async/zone.dart:1415:13)
#7239   _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217:7)
#7240   _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365:11)
#7241   _StreamController.add (dart:async/stream_controller.dart:606:5)
#7242   new _RawDatagramSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:2543:33)
#7243   _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:1385:14)
#7244   _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
#7245   _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:185:5)

Code sample
flutter doctor
[✓] Flutter (Channel stable, 3.24.3, on macOS 14.5 23F79 darwin-arm64, locale ko-KR)
    • Flutter version 3.24.3 on channel stable at /Users/likelion/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (8 days ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/likelion/Library/Android/sdk
    • Platform android-35, build-tools 34.0.0
    • ANDROID_HOME = /Users/likelion/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] VS Code (version 1.89.1)
    • VS Code at /Users/likelion/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.96.0

[✓] Connected device (7 available)
    • SM F926N (mobile)               • R3CR70RZ99M               • android-arm64  • Android 14 (API 34)
    • 안우철의 iPhone (4449) (mobile)     • 00008130-0018051E3E02001C • ios            • iOS 17.6.1 21G93
    • Leo (mobile)                    • 00008130-001134960C38001C • ios            • iOS 17.6.1 21G93
    • 장주명의 iPhone (3) (mobile)        • 00008130-000C3D0A2EE3803A • ios            • iOS 17.6.1 21G93
    • macOS (desktop)                 • macos                     • darwin-arm64   • macOS 14.5 23F79 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad     • darwin         • macOS 14.5 23F79 darwin-arm64
    • Chrome (web)                    • chrome                    • web-javascript • Google Chrome 128.0.6613.138
    ! Error: Browsing on the local area network for 장주명의 iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Screenshots or Video
No response
Logs
No response
Flutter Doctor output
[✓] Flutter (Channel stable, 3.24.3, on macOS 14.5 23F79 darwin-arm64, locale ko-KR)
    • Flutter version 3.24.3 on channel stable at /Users/likelion/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (8 days ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/likelion/Library/Android/sdk
    • Platform android-35, build-tools 34.0.0
    • ANDROID_HOME = /Users/likelion/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] VS Code (version 1.89.1)
    • VS Code at /Users/likelion/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.96.0

[✓] Connected device (7 available)
    • SM F926N (mobile)               • R3CR70RZ99M               • android-arm64  • Android 14 (API 34)
    • 안우철의 iPhone (4449) (mobile)     • 00008130-0018051E3E02001C • ios            • iOS 17.6.1 21G93
    • Leo (mobile)                    • 00008130-001134960C38001C • ios            • iOS 17.6.1 21G93
    • 장주명의 iPhone (3) (mobile)        • 00008130-000C3D0A2EE3803A • ios            • iOS 17.6.1 21G93
    • macOS (desktop)                 • macos                     • darwin-arm64   • macOS 14.5 23F79 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad     • darwin         • macOS 14.5 23F79 darwin-arm64
    • Chrome (web)                    • chrome                    • web-javascript • Google Chrome 128.0.6613.138
    ! Error: Browsing on the local area network for 장주명의 iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Hi @JangJuMyeong, can you provide the full output of flutter run -v that captures the tool crash? The output may be huge so kindly put it into a .txt file and attach it here.
Thank you

@danagbemava-nc  The log generated using the flutter run -v command provides detailed information for tracing issues in the Flutter app. If any additional information is needed to resolve the issue, please let me know.
chika_error_log.txt

Hi @JangJuMyeong, thanks for the logs. One more thing, do you only get this issue when you're running on an iOS device?

@danagbemava-nc hi I've been testing it for a few days, and it seems to only occur on iOS. Thank you.

Thanks for the update.
Labeling based on the crash logs shared above

In the flutter doctor output, I see
    ! Error: Browsing on the local area network for 장주명의 iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

장주명의 is the device being used here, right? This error message could be a hint as to what is going on here. I'm curious whether resolving this would prevent this crash. Could you try resolving this and then seeing if this crash still occurs?

@andrewkolos Hello, I apologize for the delay in response due to the long holiday period. The mentioned device is not in use, and therefore, I don't think it's causing the issue. The actual device causing the problem is another iPhone named "장주명의 iPhone(3)."

@jmagman would you happen to know who owns package:multicast_dns? This looks like we're stuck recursing while parsing.

would you happen to know who owns package:multicast_dns?

Technically me but I haven't touched it so I should probably pass it onto a different owner.
https://github.com/flutter/packages/blob/5e03bb1da411c99d80727f46e1821c4fdc6ea12c/CODEOWNERS#L29
Historically it's been maintained by community contributors and the tools team.

Is there any progress or temporary solution for this issue? The iOS development experience is very poor, with errors occurring as soon as it starts, making debugging impossible.

The issue can be confirmed as unrelated to the business logic, as it also easily occurs in newly created projects on iOS devices.

This has quite a few reports duplicated to it.
@bkonyi would you consider bumping this to a P1 and having someone look at it? This will probably be tricky without being able to reproduce.  Perhaps there's some debugging that can be added to make this actionable?

This has quite a few reports duplicated to it. @bkonyi would you consider bumping this to a P1

Done. I won't be able to take a look until the new year, but maybe @andrewkolos will have some time?


Add Support for Path Style URLs

This feature has been requested in foundry for a while now, so I decided to make a module for it.

In util.js you generate vhost style urls manually instead of getting the file URL from Foundry.
In DirectoryPicker.js you split the source using ":" as the delimiter and discard everything after the second part.
This of course would never be a problem with vhost style urls because you can not use colons in urls. However, with path style buckets, some solutions, like Ceph, generate weird bucket urls that look like "[long uuid]:bucketname" and allow multiple users to have the same bucket.
This can be solved by simply including the bucket name in the foundry server side config, but ddb-importer will then discard the actual bucket name, only keeping the uuid.
This PR will fix the DirectoryPicker usecase and it will also attempt to address the path-style URLs. However, am doing that by adding my module as a soft dependancy in utils.js, which might not be the cleanest way of doing it. My Path-Style URL code is very simple, and you can easily just implement it yourself, using a Setting in DDB Importer to toggle between bucket and vhost style URLs.

Ahh an amendment to that last part:
The generator code itself is simple enough, however, you need to patch the core FilePicker for it to work for all usecases that ddb-importer has. (sometimes you call FilePicker.upload, which would break)

As official core support for pathstyle urls is currently in the list of intended V10 features I'll close this.


Array.prototype pollution causing interactions in other extensions

I've had a couple of reports of Array.prototype pollution which we have narrowed down to this extension, a quick search points to this code probably being the culprit:
https://github.com/Azure/vscode-kubernetes-tools/blob/070b7d4278b13f2d24fa17c5fb2ccc208becaf30/src/utils/array.ts#L16
Is it possible this function could be made non-enumerable, or some other workaround employed?

Thanks for flagging this.  The shared extension host process can be a pain - apologies for the impact this has had on you.  I'm travelling at the moment and won't be able to get to this for a couple of weeks I'm afraid.
Can you clarify how it results in the issue in your extension?  The easiest fix (converting it to a toplevel function instead of a method) will make it fiddlier for me to work with, so I'm wondering if I can get away with something else.  But it's not obvious to me how this might be causing your symptoms, since you presumably aren't also adding  a choose method to arrays...!  Thanks!

Hi @itowlson - in my extension I'm creating plain JS objects (containing arrays) from the contents of the editor and passing them to an OpenAPI validator/linter. The validator isn't expecting additional enumerable properties on arrays (it could be coded more defensively, but this would be a lot of work and reduce code readability) and is so blowing up when it hits the unexpected function.
I've added a work-around for now to my extension which 'cleanses' the Array.prototype by redefining any enumerable properties it finds on an empty Array, using Object.defineProperty.
I'm also travelling from today, but could probably do a PR next week which defines the choose function as non-enumerable initially.


Update right-to-left.md

My app only supports Arabic language and I wanted it to display it in right-to-left direction, regardless of device settings.  This might be a life saving tip.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: Elashi sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@Elashi : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@conceptdev : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks for the contribution @Elashi, I updated the formatting a bit to match our style. The doc author will review next week.

@davidbritch : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@davidbritch : Thanks for your contribution! The author(s) have been notified to review your proposed change.


chore: Update instance type for RDS module

Description of changes:
I'm updating the instance type for the MySQL DB after getting this message from AWS:

Starting March 11, 2024, Amazon RDS will begin disabling the creation of Amazon RDS for MySQL, MariaDB, and PostgreSQL database instances running on M4, R4, or T2 instance types.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

AWS CodeBuild CI Report

CodeBuild project: IDFModuleTestsInfrastructur-59JoFoVH64CI
Commit ID: d424801dc7a84705cb7fd4db475232535d67e14b
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: IDFModuleTestsInfrastructur-59JoFoVH64CI
Commit ID: 4db32c62ffd6a4a4c05e7f65ad48dde11e101f61
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Document title theming

As a follow up on issues #105 and #135 we should be able to theme the document title section in a consistent way while also supporting the requirements of the different document types (i.e. separate title page vs. title section followed by content).
The first question is what should include the title section?

In case of a book it is composed of the logo (image), title, subtitle, authors, and revision.
In case of an article (according to #975) it includes only the title.

As I stated in https://github.com/asciidoctor/asciidoctor-pdf/issues/66#issuecomment-1128562591, we've decided to focus on a programmatic solution to this need. Refer to that comment for the reasoning.
If someone would like to come forward with a proposal to change the built-in ink_title_page method to look for additional keys, I won't rule it out. However, I think you'll quickly find that no matter how many keys we add, it's always going to feel constrained trying to design through configuration (short of recreating CSS). That's why I think a more powerful approach is to make the converter easier to extend, which is what we've done.
If you think it would be easier if we made an "ink" method for the article title, I'm open to considering that. However, I think you'll find that you can already capture that hook by checking the opts[:role] == :doctitle in the ink_general_heading method.
def ink_general_heading doc, title, opts
  return super unless opts[:role] == :doctitle
  theme_font :doctitle do
    ink_prose title, align: :center
  end
  margin_bottom theme.heading_doctitle_margin_bottom
end

Since I don't see any clear action right now, I'm going to close this issue as covered by existing enhancements in Asciidoctor PDF 2.0. If you still see room for improvement, please open a new issue that builds on current functionality.


Pie Chart - label 'align' and 'verticalAlign' don't effect label position

I can't seem to change the alignment of labels on pie. Have tried different combinations of align, verticalAlign but the label position does not change.
{
          name:'time',
          type:'pie',
          radius : ['70%', '75%'],
          data: this.getOptionClock1()
}

getOptionClock = () => {
    const data = [];
    for(let i=0; i<24; i++) {
      data.push({
        value: 1,
        name: clockLabel(i),
        label: {
          show: clockLabelShow(i),
          position: 'inside',
          align: 'center',
          verticalAlign: 'middle',
          padding: clockLabelPadding(i),
        },
        labelLine: { show: false },
        itemStyle: {
          color: clockColor(i),
         },
      });
    }
    return data;
  }

Currently label.align and label.verticalAlign can not be specified. Consider that a pie label might be left or right of the pie, its align should be 'right' or 'left' correspondingly.
The doc should be updated.

I am trying to have label centered over slice tick mark. For example, if each slice represents an hour of time, I would like the first label at the top of the 'clock' centered over the beginning tick. Is there any other way to do this? Or I could try to position using padding?

I positioned using padding parameters. I may play around with polar charts later but all set for now.
thanks.


Helm Repo Missing

In what area(s)?

/area runtime
/area operator
/area placement
/area docs
/area test-and-release

What version of Dapr?

0.1.x

0.2.x
Output of git describe --dirty

Expected Behavior
When trying to add the helm repo, the actual link to the repo returns a 404.
helm repo add dapr https://daprio.azurecr.io/helm/v1/repo
Actual Behavior
https://daprio.azurecr.io/helm/v1/repo/ should point to an active repo.
Steps to Reproduce the Problem
Add helm repo then try to install. Returns no such file or directory.

cc @youngbupark

I couldn't reproduce this on 3 different machines..
Which version of Helm are you using?

@DaveBben I tried to install dapr with helm on the clean Mac Book and K8S cluster. It works. Can you please provide us with the versions of K8S and helm?
cc/ @yaron2

@youngbupark My apologies. It turned out to be a misconfiguration with our helm installation. Thanks for your time.


[BUG] Cannot set property 'marked' of undefined

🐛 Bug Report
This error can be found at this path
exceljs/lib/xlsx/xform/sheet/data-validations-xform.js:75:42
It happens whenever I try to create a sheet. However, it doesn't seem too important because simply wrapping a try/catch around it fixes the problem. Literally, just wrapping it in try/catch works. But what gives? Has anyone else gotten this behavior?
       ```
        try {
         // originally, there is no try catch, just the line below
         //
          dvMap[otherAddress].marked = true;
        } catch(e) {
          console.log('cant set undefined marked blah blah', e)
        }

@cooperbrown9   I used the code from the master branch and didn't find the problem. Can you conveniently provide a version of the library and an example that can reproduce this problem? This will help us a lot in solving the problem.

I studied the source code and the corresponding xml file.  The error caused by different values of sqref attribute.
<dataValidation type="textLength" operator="greaterThan" showInputMessage="1" showErrorMessage="1" sqref="E1 E4">
   <formula1>2</formula1>
</dataValidation>


Auto corrected by following Lint Ruby Style/SafeNavigation

Auto corrected by following Lint Ruby Style/SafeNavigation
Click here to configure it on awesomecode.io

Coverage remained the same at 97.025% when pulling 379cdce49773028bcbb6f8a07b56be16998092de on awesomecode-lint-ruby-style-safenavigation-47828 into cd32a52b407596d75541c69b729af6b1d4bd7e99 on master.

Coverage remained the same at 97.025% when pulling 379cdce49773028bcbb6f8a07b56be16998092de on awesomecode-lint-ruby-style-safenavigation-47828 into cd32a52b407596d75541c69b729af6b1d4bd7e99 on master.


Refactor ConsumerThread (handler.py)

ConsumerThread looks over-complicated. Main function is 199 - 82 +1 = 118  lines long and mainly it is a huge if/elif/elif clause. That clause can be easily transformed through something like Dict[MessageType, Callable[...]] and would greatly increase readability.

Vaibhav Prakash Paratwar commented in Jira Server:

[~720599] is this still relevant ? converted this to story, if its relevant, can we take it in next sprints. cc [~520513]

Vaibhav Prakash Paratwar commented in Jira Server:

Not seeing this story will be taken in next few PIs. So closing this. [~520478] please reopen if this is required. cc [~520513]

Vaibhav Prakash Paratwar commented in Jira Server:

.

Vaibhav Prakash Paratwar commented in Jira Server:

.

Vaibhav Prakash Paratwar commented in Jira Server:

.


JBPM-5190: constant assignments fixed for call activity

Please merge #328 at first.

@jomarko I get a couple of merge conflicts with this commit, after PR328 has been merged.

@jlindop I rebased my commit with new 6.5.x branch right now, let's see result of jenkins job.

@jlindop all conflicts removed.

@jomarko Thanks.
+1


Add cudnn_fusion decorator lowering computations to XLA cuDNN fusions.

This will require https://github.com/openxla/xla/pull/15399 to work.
Code for jax/_src/cudnn/fusion.py provided by @hawkinsp.

The required change in XLA is done, this one is ready.

Is there a minimum cudnn version for this test to pass?

9.0.

The change looks fine to me, but it crashes in CI.

Do I see right, that both failing checks are in non-GPU configurations?

Yeah, you're right. Probably you need to error if lowering on a non-CUDA platform?
I think just add platform="cuda" to the register_lowering. Currently you're asserting that lowering works everywhere.
You should also skip the test if not on cuda @jtu.run_on_devices("cuda") iirc.

Done.

Sorry, it took me a long time to look at this. This test fails in our internal CI because it seems on V100 (which we run in CI) the rewrite to a cudnn fusion does not happen. Instead, the after optimization hlo ends up with a cublas gemm. Is that intended? Should the test be gated on particular GPU generations?

It should run on H100. Is this https://github.com/google/jax/pull/22699/files#diff-77b54950a53c3196a56e8f570cb6dcd4eca602b5a8b4220f5cd2acb86f060e7fR1548 not sufficient to filter by GPU type?

Anyway, I looked at other tests and added a check with skipTest(). It actually works on Ampere+.

The rewrite also seems to fail on A100?

I tested it on A100.

I'm still finding this to fail in CI. It looks like the cudnn fusion is produced at the HLO fed to the compiler, but for some reason it gets rewritten away.
Are we guaranteed that the fusion will be emitted, or can it sometimes be autotuned away or something? Are there any other circumstances under which the fusion will fall back?

Indeed, I examined the tests we have (https://github.com/openxla/xla/blob/main/xla/service/gpu/transforms/cudnn_custom_call_converter_test.cc#L27, https://github.com/openxla/xla/blob/main/xla/service/gpu/autotuning/gemm_fusion_autotuner_test.cc#L709) and realised, that the latter one relies on xla_gpu_cublas_fallback(false).
Fix: https://github.com/google/jax/pull/23505


improved memory cleaning when connected to a world or server

Since vanilla minecraft
If you play in the same world for a long time
Starts using 3 gigabytes of RAM out of 6 available
Then he starts to eat up all the back memory, rarely deleting it up to 1 gigabyte
For example, if you are tired of playing in one game
If you go to the server, it still eats up 3 gigabytes
That is, the game does not clear the base memory when re-entering another world or server
I suggest that the mod clear the memory when entering the server or another world
Thus, it will be possible to play without restarting minecraft

How are you measuring memory usage here? Are you looking at the task manager/htop/etc or at the memory usage on the F3 screen? The first one is virtually impossible to control from within Java (the JVM tends to use as much as you allow it to use), FerriteCore only tries to improve the second one (heap size).


Installed a new version of Dbeaver and am getting a Java.net.ssl.SSLHandshakeException:PKICK error on startup

Description
Installed a new version of Dbeaver and am getting a Java.net.ssl.SSLHandshakeException:PKICK error on startup

DBeaver Version
Community Edition: Version <IP_ADDRESS>210231354
Operating System
macOS 12.6 (21G115) Monterey
Database and driver
No response
Steps to reproduce

Start Dbeaver
Try to connect to test database

Additional context
No additional context...

Please, try using this guide to fix it https://dbeaver.com/docs/wiki/Importing-CA-Certificates-into-DBeaver/
Does it help?

I copied the carets file from the Java library...
Here is the copy command and the pwd I copied from...

After restarting up Dbeaver, got the same error trying to connect the test-database

Could you please send me the log files? You can find instructions here: https://dbeaver.com/docs/wiki/Log-files/. Thank you.

Here is what I found:
/Users/P2712045/Library/DBeaverData/workspace6/.metadata/dbeaver-debug.log

@msprewitt Do you have any kind of the firewall? It looks like DBeaver can't download SQLite driver for maven.

No..  On a window's computer, I was able to install DBeaver and connect with the Postgres database..  But when trying to download the drivers with my Mac.. Things are just not working right...  I sense that my credentials are screwed up.. but this is a little out of my knowledge-base... SIGH

Thank you for informing us.


Support parsing of borrowing get

Explanation: The new parser didn’t accept borrowing get while the C++ parser did
Scope: Parsing of modifiers in front of accessors
Risk: Low, very targeted change
Testing: Added new test case
Issue: rdar://112168704
Reviewer:  @bnbarham and @rintaro on https://github.com/apple/swift-syntax/pull/1904

@swift-ci Please test


chore:  update release-1.25 config.toml for release 1.26

Updated config.toml for release v1.26
Versions were updated based on latest patch releases
Following the instruction of handbook here
/hold until 1.26 release day
cc: @reylejano  @onlydole @divya-mohan0209

/lgtm

/approve

/unhold


Input type=file doesn't work

File input doesn't load in Droidotter.
Will investigate and fix.

This feature will be going out without Camera input initially.
There are to many little quirks I need to work out to support ICS -> Lollipop.
KitKat will also not be supported fully as it doesn't even support image uploads in its WebView impl.

Wow its been a long time since I update this. The code is already written to hide the button on KK. Need to push and re-compile to include new android version also.

This was fixed on KK with the latest release.


Our own bundle should be added to distro not index pom

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I followed the original steps in the tutorial at eclipsecon. Unfortunately adding our own module to the index creates a cycle in the integration tests which refer to the index which refers to the modules.

Why does the integration test need to refer to the index?

Hmm .. just re read the README about which module refers to which other .. you are right the integration tests refer to the distro.. So please ignore this PR :-)
Still I had this cycle in the tutorial. I will experiment a bit with the archetypes and let you know if I have any more problems.


Option to fire dp.change when selected date is re-clicked

I'm currently modifying the picker, after the date is changed, to show a relative date to the selected one (ie. highlight another date based on the currently selected date, to show submission vs. expected completion) and it's working ok, except for when the user clicks the same already selected date. In that case, instead of just doing nothing as it does when a disabled date is clicked, the calendar is re-created and re-drawn but since the date is the same, the dp.change event isn't fired. The end result is that the date I've manually highlighted loses it's changes and I'm never notified to recreate them.
Ideally, I would like an API to highlight a block of dates, optionally providing a class to apply to each. I could then remove all my code and just call that when it's created and on each dp.change call.
Less work, but still sufficient, would be either not doing anything when the already created date is re-clicked (as the end result is no change anyways) or provide an option to set, such as 'changeEventOnSameDateSelected: true/false', that, if set, would case dp.change to fire even if the new date was the same as the old.
In the meantime, I have just modified it and statically removed the same date checks done before firing dp.change and it's working.
Thanks! So far a fantastic picker :)

Firing the change event when the user selects the same date seems counter-intuitive, since that's not actually a change

Yes, clearly the worst of the solutions, but also the easiest. Also not sure why the calendar is redrawing itself when the same date is clicked either, as that shouldn't be necessary and stopping it would also permit my specific case, Better solution, but still fairly simple, would be to add an additional event for 'dp.redrawn' or some such, and even better would allow for applying a custom class to a block of dates.

each day has data-day=[...] and a class of day. you should be able to handle any extra custom functions and requirements with that

It's not that I can't add the additional markup easily enough. But that only works if I can add additional click handlers to the day that are guaranteed to fire after the built in ones so I can redraw. Otherwise, there is no way for me to know when the calendar is redrawn (which it doesn't really need to be) as a result of clicking a second time on the already selected day. After it's redrawn, any changes I've made will be lost and I won't know to remake them. To get around that, either the calendar needs to not redraw when the same already selected day is clicked again (I can catch other redraws with the change event) or there needs to be an additional redraw event.
Or, more ideally and for flexibility, a way to provide something like:
{
    specialDays: [
        {
            days: ['03-12-2015', '06-12-2015', '09-12-2015'],

    ]
}

I'd like to chime in on this. I agree that firing a "change" event when the user selects a date which is the same as that already selected is a little weird, but from a user perspective, sometimes you popup the picker to confirm the value that is already there, or because there is a default value that is the correct one. It would be useful to have some kind of event that fires when you have selected the default date.
The most natural action to take in a lot of cases is to close the picker if you select the current date, but currently there isn't really any way to do that

I'd like the chime in here too with a slightly different use case
I rely on the dp.change event to do some special formatting of the date string within the input field. The format that I use is not a valid moment js display format, so can't be set on initialisation
When the same date is clicked, my handler never gets called so the string in the input field uses the format that I originally initialised the picker to, instead of my custom format. Firing dp.change or something like dp.select would solve this issue.

Dear Friends,
What I did is, whenver the view is updated, I register a click event on the selected date  and looks to be working:
    function register_select_same_day(){
        // since dp.change doesn't trigger if the date doesn't change, we have to check ourself
        $(".datepicker .datepicker-days td.day.active").click(function(){
            console.log('clicked same day!!');
        });
    }
    thedatetime2.on("dp.update", function (e) {
        register_select_same_day();
    });
    thedatetime2.on("dp.show", function (e) {
        register_select_same_day();
    });

@ddorian
I might be missing something, but I can get this to work for the first click on the same day, but any subsequent clicks do not register. I believe this had to do with the calendar being redrawn when the same day is clicked.
I'm just trying to add some custom classes to dates (dynamic so I can't hard code it), and it seems that I either need to write css using javascript (which i think smells bad) or have some way to know when the calendar is being redrawn so I can reapply the changes.
I feel like any of "dp.select", "dp.redrawn", or https://github.com/Eonasdan/bootstrap-datetimepicker/pull/1605 could be added so solve this issue.

Well in the meantime, I've gone to
			var self = this;
			datepicker.bind('DOMSubtreeModified', function(e) {
				if (e.target.innerHTML.length > 0 && !document.querySelector(".special-day-1") && !document.querySelector(".special-day-2")) {
					self.markCalendarDays();
				}
			});

This does a lot of unnecessary checking, but on a new pc/smartphone I'm not noticing anything too slow (but it is slower).


provide more context to errors

Inspired by #43, this collect all errors of a kind and raises a single error message. Not sure if the implementation is really the best way, though (one drawback is that the original traceback will be lost).
This also fixes the error message for operations like reindex when trying to specify indexers with incompatible units for data variables.
examples for the new error messages
In [1]: import xarray as xr
   ...: import pint_xarray

In [2]: ds = xr.Dataset({"a": ("x", [0, 1]), "b": ("y", [1, 2, 3])})
   ...: ds
Out[2]:
<xarray.Dataset>
Dimensions:  (x: 2, y: 3)
Dimensions without coordinates: x, y
Data variables:
    a        (x) int64 0 1
    b        (y) int64 1 2 3

In [3]: ds.pint.quantify({"a": "invalid", "b": "invalid2"})
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-273f907e75ca> in <module>
----> 1 ds.pint.quantify({"a": "invalid", "b": "invalid2"})

.../pint_xarray/accessors.py in quantify(self, units, unit_registry, **unit_kwargs)
    972
    973         if invalid_units:
--> 974             raise ValueError(format_error_message(invalid_units, "parse"))
    975
    976         return self.ds.pipe(conversion.strip_unit_attributes).pipe(

ValueError: Cannot parse units:
 -- invalid units for variable 'b': invalid2 (parameter) (reason: 'invalid2' is not defined in the unit registry)
 -- invalid units for variable 'a': invalid (parameter) (reason: 'invalid' is not defined in the unit registry)

In [4]: quantified = ds.pint.quantify({"a": "m", "b": "s"})
   ...: quantified
Out[4]:
<xarray.Dataset>
Dimensions:  (x: 2, y: 3)
Dimensions without coordinates: x, y
Data variables:
    a        (x) int64 [m] 0 1
    b        (y) int64 [s] 1 2 3

In [5]: quantified.pint.to({"a": "ms", "b": "mm"})
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-254b9671693a> in <module>
----> 1 quantified.pint.to({"a": "ms", "b": "mm"})

.../pint_xarray/accessors.py in to(self, units, **unit_kwargs)
   1150         units = either_dict_or_kwargs(units, unit_kwargs, "to")
   1151
-> 1152         return conversion.convert_units(self.ds, units)
   1153
   1154     def chunk(self, chunks, name_prefix="xarray-", token=None, lock=False):

.../pint_xarray/conversion.py in convert_units(obj, units)
    213
    214         if failed:
--> 215             raise ValueError(format_error_message(failed, "convert"))
    216
    217         coords = {

ValueError: Cannot convert variables:
 -- incompatible units for variable 'a': Cannot convert from 'meter' ([length]) to 'millisecond' ([time])
 -- incompatible units for variable 'b': Cannot convert from 'second' ([time]) to 'millimeter' ([length])

cc @TomNicholas

[ ] Tests added
[x] Passes pre-commit run --all-files
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

I'm also not really sure if this implementation is best (what would happen if pint throws a type of error you didn't realise it could throw?), but the result is pretty neat, and closer to what I had imagined for #43 originally.

what would happen if pint throws a type of error you didn't realise it could throw?

I'd say that's a bug which can be fixed normally. I chose to catch pint.errors.PintTypeError,which is the base class of most exceptions pint will raise, with the only exceptions being related to defining or parsing units (the UndefinedUnitError we should catch in quantify). All in all I guess this is pretty safe?


Bezier curve

I need a clarification which is the best way to draw a Bezier curve? Excuse me if a request this in GitHub i understand that is not the appropriate place to do that!
If anyone post my an example.
Thanks

Great question. Currently Maker.js does not support true Bezier curve primitives. Side note - it also does not support Ellipse.
Short answer:
These can be approximated with lines or arcs. Preferable someone in the community can package these as an NPM package. Similar to what OpenJsCad does
Please let me know if approximation is something you can live with, or if there is a reason you need absolute true beziers.
Long answer:
There are a couple of reasons for not having these:

Some CNC services do not support Spline (aka Bezier) or Ellipse in DXF files, and I wanted to make sure Maker.js would create 100% compatible output.
Lots more math code :P
More difficult API surface. The result of an intersection call could potentially have several intersections between two bezier curves instead of the predictable maximum of 2 for arcs, lines and circles. The API result would need to include a collection of "control points" etc.

It was foreseeable that this issue would arise, I'm glad you brought it up for discussion!

also - @NickNaso - GitHub is definitely the best place to have these discussions and I am grateful to have your feedback and have you in the community!

Hi guys, I would contribute with my experience.
I think that Bezier curves are important for two main thighs:

to coding easily a draw, alternatively using arches can be complex and time expensive to find points to draw;
to have a simpler output for a machine –able to read it. This will enable to achieve the best quality in a production and it increase the production speed. If we do not use bezier, we will have much more points and a lot of start and stops. I.e.: in a laser cut, the machine will start and stop continuously and this will create a burn.

I think it is a must have and before the use, anyone should consider the application.
I would not limit the library just for few CNCs :-)

I tried to create a Bezier Curve creating all the points of the function and joining them with the  connectTheDots model but the result is not great for the CNC because it split the curve in n line (in my case 100). I think that It may be approximated by arcs  to reduce the number of cuts the machine must execute..  suggestions are welcome!
var makerjs = require('makerjs');
var fs = require('fs');

var bezier = function (t, p0, p1, p2, p3) {
    var cX = 3 * (p1.x - p0.x),
        bX = 3 * (p2.x - p1.x) - cX,
        aX = p3.x - p0.x - cX - bX;

    var cY = 3 * (p1.y - p0.y),
        bY = 3 * (p2.y - p1.y) - cY,
        aY = p3.y - p0.y - cY - bY;

    var x = (aX * Math.pow(t, 3)) + (bX * Math.pow(t, 2)) + (cX * t) + p0.x;
    var y = (aY * Math.pow(t, 3)) + (bY * Math.pow(t, 2)) + (cY * t) + p0.y;

    return {x: x, y: y};
};

(function () {
    var accuracy = 0.01,
        p0 = {x: 10, y: 10},
        p1 = {x: 50, y: 100},
        p2 = {x: 150, y: 200},
        p3 = {x: 200, y: 75};

    var points = [];

    for (var i = 0; i < 1; i += accuracy) {
        var p = bezier(i, p0, p1, p2, p3);
        points.push([p.x, p.y]);
    }

    var bezierJS = new makerjs.models.ConnectTheDots(true, points);

    var svg = makerjs.exporter.toSVG(bezierJS);

    fs.writeFile('bezier.svg', svg);
})();

@gPrio Thanks for mentioning these. I would also another reason: for accuracy.
@tonillo Thanks for the code sample! It looks good on screen, but yes there are many segments.
I would like to cut your sample on my laser cutter to see the results.
Can I ask everyone their use case for Bezier, to get a better understanding of your application? Is it purely aesthetic or to be employed in a mechanism?

Bezier branch created, with stubs for future work.

I think the sample code need a fix.
I found a thread with the same script for canvas, and a fiddle sample:
http://jsfiddle.net/fQYsU/
Adapting the code for the playgound, I see a different result
var makerjs = require('makerjs');
var bezier = function (t, p0, p1, p2, p3) {
    var cX = 3 * (p1.x - p0.x),
        bX = 3 * (p2.x - p1.x) - cX,
        aX = p3.x - p0.x - cX - bX;
    var cY = 3 * (p1.y - p0.y),
        bY = 3 * (p2.y - p1.y) - cY,
        aY = p3.y - p0.y - cY - bY;
    var x = (aX * Math.pow(t, 3)) + (bX * Math.pow(t, 2)) + (cX * t) + p0.x;
    var y = (aY * Math.pow(t, 3)) + (bY * Math.pow(t, 2)) + (cY * t) + p0.y;
    return {x: x, y: y};
};
function bz () {
    var accuracy = 0.01,
        p0 = {x: 10, y: 10},
        p1 = {x: 50, y: 100},
        p2 = {x: 150, y: 200},
        p3 = {x: 200, y: 75};

    var points = [];
    for (var i = 0; i < 1; i += accuracy) {
        var p = bezier(i, p0, p1, p2, p3);
        points.push([p.x, p.y]);
    }
    return new makerjs.models.ConnectTheDots(true, points);
};
module.exports = bz;

Probably, It's because the canvas have the oringin (0,0) on top left, and positive y go downside.
I also fork the jsfiddle script to create a quadratic Bezier, that works on cavas, but it's totally wrong on makerjs.
cavans:
http://jsfiddle.net/05j1mb28/
makerjs:
var makerjs = require('makerjs');

var bezier = function(t, p0, p1, p2){
  var cX = 3 * (p1.x - p0.x),
	  bX = 3 * (p2.x - p1.x) - cX

  var cY = 3 * (p0.y - p1.y),
	  bY = 3 * (p1.y - p2.y) - cY

  var x =  (bX * Math.pow(t, 2)) + (cX * t) + p0.x;
  var y =  (bY * Math.pow(t, 2)) + (cY * t) + p0.y;

  return {x: x, y: y};
};

function bz() {
    var accuracy = 0.2;
    var p0 = {x: 0, y: 0};
    var p1 = {x: 160, y: 0};
    var p2 = {x: 160, y: 160};

    var points = [];
	points.push([p0.x, p0.y]);
	points.push([p1.x, p1.y]);
	points.push([p2.x, p2.y]);

    for (var i = 0; i < 1; i += accuracy) {
        var p = bezier(i, p0, p1, p2);
        points.push([p.x, p.y]);
    }

    return new makerjs.models.ConnectTheDots(true, points);

};

module.exports = bz;

I'm trying to make this because I want to print text. Using Opentypejs it's possible to extract paths from font letters, but after that, I need to convert these paths into makerjs, and the paths from opentype are quadratic Bezier and lines.

@lollotek I forked your fiddle to get the same result from both canvas and Maker.js:
http://jsfiddle.net/Lztb65h4/5/
You are correct that the Y axis in Maker.js is opposite of SVG / Canvas. Maker.js follows traditional drafting coordinates, see http://microsoft.github.io/maker.js/docs/basic-drawing/#Points
It is simple to mirror on the Y axis: var flipY = makerjs.model.mirror(mymodel, false, true);
http://microsoft.github.io/maker.js/docs/api/modules/makerjs.model.html#mirror
It looks like you were trying to use the actual Bezier control points for the Maker.js code:
var points = [];
points.push([p0.x, p0.y]);
points.push([p1.x, p1.y]);
points.push([p2.x, p2.y]);
But - there is no Bezier functionality in Maker.js (yet). I am working on an upcoming feature to add this. So the forked fiddle example works by drawing each point as you did with canvas.
Also, I'm intrigued by the use of Opentype.js - I will need to take a look at that! Text will be a great feature to add as well.

@lollotek also - slight mods to your code worked:
var makerjs = require('makerjs');

var bezier = function(t, p0, p1, p2){
  var cX = 3 * (p1.x - p0.x),
      bX = 3 * (p2.x - p1.x) - cX

  var cY = 3 * (p0.y - p1.y),
      bY = 3 * (p1.y - p2.y) - cY

  var x =  (bX * Math.pow(t, 2)) + (cX * t) + p0.x;
  var y =  (bY * Math.pow(t, 2)) + (cY * t) + p0.y;

  return {x: x, y: y};
};

function bz() {
    var accuracy = 0.02; //changed
    var p0 = {x: 0, y: 0};
    var p1 = {x: 160, y: 0};
    var p2 = {x: 160, y: 160};

    var points = [];
//    points.push([p0.x, p0.y]);
//    points.push([p1.x, p1.y]);
//    points.push([p2.x, p2.y]);

    for (var i = 0; i < 1; i += accuracy) {
        var p = bezier(i, p0, p1, p2);
        points.push([p.x, p.y]);
    }

    return new makerjs.models.ConnectTheDots(false, points); //false = don't close the shape

};

module.exports = bz;

@danmarshall
Thanks for the feedle!
I think the function for quadratic Bezier have some issue, because I expect an arc figure sending [[0,0],[160,0],[160,160]].
In my case I solved using an external library https://www.npmjs.com/package/bezier
The following code for nodejs generate svg of a single character from a specific font (remeber to set a valid ttf font into fonts folder):

var makerjs = require('makerjs');
var opentype = require('opentype.js');
var bezier = require('Bezier');

var fs = require('fs')

opentype.load('fonts/ZELDA.ttf', function(err, font) {
    if (err) {
        console.log('Could not load font: ' + err);
    } else {

        //some code to build line and circle
		var points = [];
		var bezierArray = [];
		var pathArray = [];

		var textPath = font.getPath("P", 0, 0, 72);
		var position = [0,0];

		var mymodel = [];
		for (var i = 0; i < textPath.commands.length; i++){
			var cmd = textPath.commands[i];
			if (cmd != undefined){
				switch (cmd.type){
					case 'Q':
						var points = [];
						var x = [position[0],cmd.x1,cmd.x];
						var y = [position[1],cmd.y1,cmd.y];
						for (var t=0; t<1; t+=0.01){
							points.push([bezier(x, t), bezier(y, t)]);
						}
						position.push = [cmd.x,cmd.y];
						bezierArray.push(new makerjs.models.ConnectTheDots(false, points))
						break;
					case 'L':
						var line = {
						  type: 'line',
						  origin: position,
						  end: [cmd.x,cmd.y]
						};
						pathArray.push(line);
						break;
				}
				position = [cmd.x,cmd.y];
			}
		}

		var model = { paths: pathArray, models: bezierArray};
		var flipY = makerjs.model.mirror(model, false, true);
		var svg = makerjs.exporter.toSVG(flipY);
		fs.writeFile('test.svg', svg);
    }
});

I also found a very complete library for Bezier http://pomax.github.io/bezierjs/

@lollotek
Right now I'm on vacation and don't have a computer, but just reviewing your code, could this be a fix?:

var x = [position[0],cmd.x,cmd.y];

var y = [position[1],cmd.x1,cmd.y1];

Hello all, I'm proud to say that Maker.js now supports Bezier curves. It has been many months in the making, involving a lot of research. Special thanks go to @Pomax for the excellent library Bezier.js which is now a dependency.
There is much to document, but here are the key pieces to know:

Bezier Curves are generated as a Model containing a segmented series of arcs with a high degree of accuracy.
All boolean operations in combine are performed as usual, using the arcs.
During SVG export, these segments are re-evaluated, and outputted as native SVG quadratic and cubic bezier curves.

Demos:
http://microsoft.github.io/maker.js/playground/?script=BezierCurve
http://microsoft.github.io/maker.js/playground/?script=Ellipse
(click on 'show paths' to see the arcs)
Please open a new issue for any bugs that you may find.
Thanks!
Dan

Thank you i wiil test this feautures very soon!

Bezier curves in all the things =D

I've got this Issue: I want to display a dxf in the Viewer. Right now I'am writing a parser for it. Now I've got problems with Splines (BezierCurves). As I noticed, only certain curves (quadratic and cubic ) are supported which have 3 or 4 points. However, I also have Splines that have more than 4 points. Would you have an idea to implement it anyways?
Best regards

@DanDaHahn note that this issue got closed, so if you have a problem distinct from this one, you want to file that as a new issue instead.

@Pomax
thanks for your reply. I thought that the participants maybe get a notification and maybe reopen this thread.
I'll open a new one.


Output data structures (Pandas, etc)

Currently, Pandas has to be included as a dependency because it's imported in dgipy.dgidb. However, some users might not want to use Pandas at all. This is sort of possible by setting use_pandas to False, but you'd still need to have Pandas installed.
It might be more elegant to refactor pandas output (the _process_output method) into a separate module that imports pandas in a protected way (i.e. wraps import pandas in a try/except block) and then includes pandas as an optional dependency. Could also provide other kinds of data outputs (eg Polars, Dask, or maybe dumping to sqlite or something?) in this way as well.

I guess there could be a world where you really just want the raw GraphQL, but the Pandas export methods perform a conversion that is probalby useful even if you don't want the Pandas. I'd say we should only perform the transform to pandas/other DF methods as a final step.

My thought on this right now is to have some kind of exporter or converter module with to_pandas methods that constrains the import to only happen in the method, and then puts pandas into an optional dependency group

Actually, we should just target the Python dataframe standard


OS X doesn't function as a normal keyboard

The OS X input method doesn't function as a normal keyboard. I think it should only switch to LaTeX mode when "" is used, but it requires every word to be accepted with a space. (OS X 10.9.5)

I think the source of this issue is that the keyboard map includes the normal keys ("a", "1", etc.). This causes them to be included as special multi-stroke sequences. It causes similar problems with Emacs, for example. It's probably easy to fix by removing those keys from the input methods.

I agree that this is a serious issue. (Although note that we do want _0 and ^0 to produce ₀ and ⁰ respectively.)

It doesn't seem to me that this change makes the input method work the way you want it to.
You can test this for yourself if you have the repository checked out.
rm data/*/alphanumeric.txt
make clean
make

Then install latex.cin in your ~/Library/Input\ Methods directory.

Yeah, I tried it out, I responded without fully understanding what the input method actually was doing.


services: Add support Vercel Remote Caching

Vercel offers a remote caching service, which can be found at https://vercel.com/docs/concepts/monorepos/remote-caching. It would be beneficial for opendal to incorporate this support into their platform so that users can take advantage of this feature. For instance, users could run sccache in the Vercel CI environment.

https://vercel.com/docs/rest-api/endpoints#artifacts

Have fun!

https://vercel.com/blog/vercel-storage
We will have:

vercel cache
vercel kv
vercel storage

@Xuanwo @suyanhanx
Although Vercel seems change the API doc, but still want to discuss how to implement this case.
Here is the scene:
The Vercel offers a API endpoint for upload artifacts with 4 custom HTTP header:

It appears that the x-artifact-client-ci parameter and the x-artifact-client-interactive parameter remain constant throughout an access session, so they can be set as backend fields. However, the other two parameters, x-artifact-duration and x-artifact-tag, seem to change with each operation.
There is a possible place to put this logic currently, which is in OpRead. However, this also means that a local logic used only by Vercel Cache Service will leak to the global scope, which doesn't seem like a good design. Would you like to discuss how to support HTTP headers that change with each operation like this?

Would you like to discuss how to support HTTP headers that change with each operation like this?

We don't need to support it for now.

I'm planning to implement vercel cache support to get familiar with opendal's core design. And maybe then to try other implementation~

Take your time and have fun! We can split them into different issues.


Support checking against local PKGBUILD

Also reworked args parsing so that repro check -d *.pkg.tar.xz doesn't fail.
Depends on #30, merge that one first and I'll rebase to simplify the diff.

@maximbaz gogo rebase

@Foxboron done 😉


autobk parameter XAFS plugins  are lost after function execution?

Hi
I was wondering why the data group add attributes: pre1 pre2 norm1 norm2 after pre_edge() while
kmin, kmax , kweight  are not stored.
Maybe will be nice make a dictionary with the parameter of EXAFS extraction in the group.
What do you think about?

@Prestipino  Ah, good point.  I agree these should be reported.
Since the names clash with FT parameter names, would it be reasonable to call these kmin_bkg, kmax_bkg, and kweight_bkg to identify them as background-subtraction parameters?   Alternatively, they could go into the "autobk_details" subgroup.  Currently, that's mostly focused on details of the spline fit.
This would be a very simple change, basically adding group.kmin_bkg = kmin to the code.   Are you willing/able to make a PR?   That's a good way to make sure you get credit for identifying the problem.

It's a good point, Carmelo. My vote would be to put them in an "autobk_details" subgroup.

good for  "autobk_details" subgroup.
On Wed, Feb 17, 2016 at 2:17 PM, Bruce Ravel<EMAIL_ADDRESS>wrote:

It's a good point, Carmelo. My vote would be to put them in an
"autobk_details" subgroup.
—
Reply to this email directly or view it on GitHub
https://github.com/xraypy/xraylarch/issues/128#issuecomment-185199838.

--
Carmelo Prestipino
Sciences Chimiques de Rennes, UMR 6226
Solid State and Materials Chemistry group (CSM)
Campus de Beaulieu, Bât 10B, bureau 123
263 avenue du Général Leclerc
F-35042 RENNES
France
Tel: (+33) 22323 6531
FAX: (+33) 22323 5959

I also would like to express a preference for 'autobk_details' subgroup. Just to better understand, we are talking of a dictionary, right?

Hi to everybody
I create a subgroup for each of the "extraction" function :
pre_edge_details ,
autobk_details, xftf, xftr
in which hide of the details
in each subgroup 'function'_details I add an attribute 'params' that
contains the arguments of the function
the idea is store the parameter in a way that can be save it in pythonic
way
the dictionary form  is to make it usable again to call the function for an
another function.
ex.
pre_edge(pippo, **pluto.Pre_edge_details.params)
two questions:
1)which attribute should be keep in parent group   and which move in
details??
pre_edge:
main_group attr
['dmude',
'e0',
'edge_step',
'flat',
'norm',
'post_edge',                     # maybe in details?
'pre_edge',                       # maybe in details?
'pre_edge_details']
autobk
main group attr.
['autobk_details',
'bkg',
'chi',
'chie',                             # maybe in details?
'k',
'pre_edge_details']
2)when are used the default value None for (pre1,norm2,e0) what keep in
param?
I keep the real numerical value for norm2 and pre1
but for e0 given that a main group attribute also exist  i will keep 'None'
do you have other ideas??
let me know
Carmelo
On Wed, Feb 17, 2016 at 7:09 PM, Mauro Rovezzi<EMAIL_ADDRESS>wrote:

I also would like to express a preference for 'autobk_details' subgroup.
Just to better understand, we are talking of a dictionary, right?
—
Reply to this email directly or view it on GitHub
https://github.com/xraypy/xraylarch/issues/128#issuecomment-185329325.

--
Carmelo Prestipino
Sciences Chimiques de Rennes, UMR 6226
Solid State and Materials Chemistry group (CSM)
Campus de Beaulieu, Bât 10B, bureau 123
263 avenue du Général Leclerc
F-35042 RENNES
France
Tel: (+33) 22323 6531
FAX: (+33) 22323 5959

@Prestipino thanks for bringing up the discussion!
For both of your points 1) and 2), and for better provenance in general, maybe each Group that goes through pre_edge(), autobk(), etc could be given a subgroup (xafs_details or better name?) that had all the parameters used in that step, and leave the main group to hold only the data that is expected to really be needed in later steps.    It was sort of obvious that autobk needed this, but maybe every processing step should be expected to have "details" that should be saved for complete documentation.
I think could then also stuff into that subgroup the actual arguments (probably as a dictionary) passed into pre_edge(), autobk() etc, and so including when None or other defaults were taken implicitly.

Useful discussion, indeed!
In my experience using Larch functions I have always the need to store all the passed parameters in a nested dictionary (e.g.  self.kwsd = { 'pre_edge' : {'e0' : None,  ...,},  'xftf' : {'xattr' : 'k', ...}}) for later use or for logging.
My preference would then be to store everything in dictionaries. In my (limited) experience with Python, working with dictionaries is much easier than with attributes. I would leave attributes only for methods (= functions) and store variables (= parameters) in a single dictionary. If possible, I would even move the data subgroups (= attributes) to a single dictionary, but you would probably be against it, due to the strong change to introduce in Larch architecture ;)
Anyway, my proposal would be to have in 'Group' two dictionaries: self._params and self._data, then the Larch functions could act and write everything in those dictionaries. This would make things much easier for re-using parameters between functions.

@maurov  I agree that the arguments to functions are better as dictionaries.  Anybody up for implementing this?
FWIW, it is pretty easy to convert any Group to a dictionary with
   my_dict = my_group.__dict__

and convert most dictionaries to a Group with
   my_group = Group(**my_dict)

That's only "most" because dictionary keys can be more general than attribute names (keys might be tuples, numbers, reserved words, or strings with spaces, commas, dots, etc).

@newville unfortunately, I do not have time this period for implementing this. Anyway, thanks for the tip for converting Group <-> dict, I overlooked the Group class.

Hi
I have already done something......... give a look at it.
I would avoid to use massively the dictionaries, they are good for script
but  for the interactive shell are less practical.
I'm sending  a fork xafsplugdetais sorry for the N mistype.
Carmelo
Il 19/feb/2016 18:56, "Mauro Rovezzi"<EMAIL_ADDRESS>ha scritto:

@newville https://github.com/newville unfortunately, I do not have time
this period for implementing this. Anyway, thanks for the tip for
converting Group <-> dict, I overlooked the Group class.
—
Reply to this email directly or view it on GitHub
https://github.com/xraypy/xraylarch/issues/128#issuecomment-186332290.

@Prestipino  I see a branch was created but don't see any actual changes here.  Do you need to push commits to this branch?

@Newville Soory conflict between windows interfaces.
commit done
On Sun, Feb 21, 2016 at 5:53 PM, Matt Newville<EMAIL_ADDRESS>wrote:

@Prestipino https://github.com/Prestipino I see a branch was created
but don't see any actual changes here. Do you need to push commits to this
branch?
—
Reply to this email directly or view it on GitHub
https://github.com/xraypy/xraylarch/issues/128#issuecomment-186856591.

--
Carmelo Prestipino
Sciences Chimiques de Rennes, UMR 6226
Solid State and Materials Chemistry group (CSM)
Campus de Beaulieu, Bât 10B, bureau 123
263 avenue du Général Leclerc
F-35042 RENNES
France
Tel: (+33) 22323 6531
FAX: (+33) 22323 5959

@Prestipino   Thanks -- that looks good.  I think the idea of having each function create a function_details group and a dictionary of calling parameters will be really helpful.
I might prefer the name .pre_edge_details.call_args to pre_edge_details.params, as params is sort of over-loaded with meaning, and the intention is to encapsulate the calling arguments.  Does that seem reasonable?
I would sort of prefer the building of the dictionary-of-arguments to be more automated than an eval() of a fixed list of names.   That is, this method will work, but will not be so easy to use in other functions.  At this point, don't worry about that, but I might try to change this to be more devious.
I would say make a Pull Request for this branch, after considering renaming params to call_args or some other name you think might be better.

@newville
I totally agree for the change of name "params" was the first in my brain
but is often the first.
if you prefer the dictionary could be build by a locals() call just at the
start of the function..
I'll make the modification soon
On Tue, Feb 23, 2016 at 12:28 AM, Matt Newville<EMAIL_ADDRESS>wrote:

@Prestipino https://github.com/Prestipino Thanks -- that looks good. I
think the idea of having each function create a function_details group
and a dictionary of calling parameters will be really helpful.
I might prefer the name .pre_edge_details.call_args to
pre_edge_details.params, as params is sort of over-loaded with meaning,
and the intention is to encapsulate the calling arguments. Does that seem
reasonable?
I would sort of prefer the building of the dictionary-of-arguments to be
more automated than an eval() of a fixed list of names. That is, this
method will work, but will not be so easy to use in other functions. At
this point, don't worry about that, but I might try to change this to be
more devious.
I would say make a Pull Request for this branch, after considering
renaming params to call_args or some other name you think might be better.
—
Reply to this email directly or view it on GitHub
https://github.com/xraypy/xraylarch/issues/128#issuecomment-187435789.

--
Carmelo Prestipino
Sciences Chimiques de Rennes, UMR 6226
Solid State and Materials Chemistry group (CSM)
Campus de Beaulieu, Bât 10B, bureau 123
263 avenue du Général Leclerc
F-35042 RENNES
France
Tel: (+33) 22323 6531
FAX: (+33) 22323 5959


*: replace TPR with CRD and update apiVersion and kind in docs and examples

@hongchaodeng everything under doc/design is currently unchanged since I'm not sure if we are planning to keep them up to date.
Still need to test out each of the updated examples with the new spec to make sure that they work correctly.

LGTM


Disable months years fix 192

isValidDate bug fix
Description
The isValidDate pull request wasn't fully functional and caused some bugs
Motivation and Context
Should fix the bug #192
Checklist

[ ] My change required changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have updated the TypeScript type definition accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Hi @michelre. Thanks for looking into this bug!
Before I review it you need to rebase your branch against the master branch. Here's an SO post on how you do it, in case you didn't know :)

I'm running into this issue and have had to pin react-datetime to version 2.6.2 until this is fixed.
I think the fix in this PR is pretty great, but there is still a small hole in the logic.  Lets say my isValidDate function checks if the date is after noon on the last day of the month.  The month will still be disabled in that case.
Would it be a good idea to pass the viewMode into the isValidDate function as well as the date being checked?   This would at least give the isValidDate function a chance to work around this edge case.
Something like:
isValid(day, 'months')

@scags9876 Thanks for your reply, cause you're right. I need to check this and robustify the unit tests! I do this quickly! :)

@scags9876 I did not really manage to reproduce your case. So I first rebased my branch against the master so I don't have conflicts.

The solution @scags9876 mentioned (pass the viewMode into isValidDate) would provide a simple and robust solution. We're having this same problem and I was about to write the code for that solution.

@michelre After looking more into it, i think the solution you have here is sufficient to fix this issue.  Passing the viewMode into isValidDate might be a good idea for a future enhancement, but I dont think it's necessary to fix the current problem.

@michelre this PR still needs to be rebased against master and force pushed (be careful when doing this so no commit gets lost). If you're not sure on how to do it let me know.
I am not sure what I feel about having separate methods for day, month and time. I will have to think about this.

@simeg I've already done the rebase but I did not force pushed. I've had a lot of pain doing the rebase and I don't want to break anything

@scags9876: Can you explain then how to write an isValidDate function that disables dates before today, without disabling the entire month (if it's not the first day of the month) or the entire year (if it's not January 1)?

@scags9876: Can you explain then how to write an isValidDate function that disables dates before today, without disabling the entire month (if it's not the first day of the month) or the entire year (if it's not January 1)?

@1simonfish Using the code in this PR, the isValidDate in example.js works to disable dates before today, without disabling the entire month.   comment out the following lines to see:
    viewMode: 'days',
    dateFormat: 'MMMM',

Using code from master, it's not possible to do what you ask, hence the need for this PR.

@1simonfish this function: https://github.com/YouCanBookMe/react-datetime/pull/198/files#diff-4a514f9fd4c8ed8e9fd7c71381ed1e19R10

@michelre I'll extract your commits and push them myself if you don't feel like doing a force push, it's ok. I'll try to find some time soon to do this.

Hi @michelre. Thanks so much for the contribution, I just merged PR #244 where I put your changes.


Support az artifacts universal list command

Related command
The current az artifacts universal group only supports the download and publish commands.
❯ az artifacts universal --help

Group
    az artifacts universal : Manage Universal Packages.

Commands:
    download : Download a package.
    publish  : Publish a package to a feed.

Is your feature request related to a problem? Please describe.

When using Azure Pipelines, we often want to know if a package version exists in Azure Artifacts, either before downloading it or before publishing a new package. Trying to download a non-existent package version fails, and trying to publish an existing package version also fails.
It is possible to handle download failure in scripts, which is okay, but if what we want to do is publish a version using the UniversalPackage@0 task, and it already then that task will fail.
We have to rely on handling publish failure, instead of testing whether the version exists before publishing the version. When trying to download a package version, we have to rely on handling download failure if a version does not exist.
Describe the solution you'd like

I suggest implementing a command called az artifacts universal list that will take a package name as a parameter, and will list zero or more versions. It could potentially use the same API as the web interface that lets us list package versions. The list command could also support a parameter that only returns the selected (latest) version, just like the web ui does.
Describe alternatives you've considered

When publishing a new package version using the UniversalPackage@0 task, we have a solution where we attempt to download the artifact in a script before publishing it, and if the download was successful, then we don't publish a new version, but if the download failed, then we publish a new version. This is method is wasteful of pipeline agent's runtime,  compute resources and developers' waiting time.
Additional context

Thank you for opening this issue, we will look into it.


Does not make parallel build support explicit

When doing a parallel build with sphinx-build -j auto ... I get
WARNING: the sphinxembeddedvideos.youtube extension does not declare if it is safe for parallel reading,
assuming it isn't - please ask the extension author to check and make it explicit

This is with sphinx 4.4. Does it support parallel builds? See also https://www.sphinx-doc.org/en/master/extdev/index.html?highlight=parallel_read_safe#extension-metadata.

I have to confess that I don't know the answer to this one. Are we parallel safe? I don't think we're doing anything that wouldn't be but I also really know what the constraints are in this case.

The posted link from me has:
The parallel-read-safe extension must satisfy the following conditions:

    The core logic of the extension is parallelly executable during the reading phase.

    It has event handlers for [env-merge-info](https://www.sphinx-doc.org/en/master/extdev/appapi.html#event-env-merge-info) and [env-purge-doc](https://www.sphinx-doc.org/en/master/extdev/appapi.html#event-env-purge-doc) events if it stores data to the build environment object (env) during the reading phase.

Does that help?

I read that but I didn't really understand it. I think the exension doesn't modify any shared state during read so I think it's probably parallel-safe. However I don't really know how I would go about checking that. I am slightly nervous about publishing metadata saying we're parallel-safe on without really knowing.
Since you have a parallel build set up, can you at least test whether your build works with a version of this plugin that advertises itself as parallel-safe?

I've hacked support into the extension 1 and it does still build here.

Heya, FYI I think it may not be parallel safe, because of the use of env.remote_images here: https://github.com/sphinx-contrib/youtube/blob/e12497621d1ed3a5ad357c8db8ab67a9799f9a20/sphinxcontrib/youtube/utils.py#L137
This will not be propagated when you merge the environments from parallel builds.
So you need to connect an env-merge-info event, to merge the env.remote_images: https://www.sphinx-doc.org/en/master/extdev/appapi.html#event-env-merge-info

no problem 😄