Similar page for Python Visuals

Is there any similar page also for Python Visuals? Here there are data size limitations that are missing for Python in this page.

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

ID: 90c7931b-9fbb-bec4-09c4-9c827e4ec7a1
Version Independent ID: 7ebc1400-482b-62e6-3747-bb7ffdb1dcf3
Content: Create advanced analytics and visualizations using R scripts - Power BI
Content Source: powerbi-docs/visuals/service-r-visuals.md
Service: powerbi
Sub-service: pbi-visuals
GitHub Login: @mihart
Microsoft Alias: mihart

Hi @lucazav  - thank you for the feedback on our documentation. If I understand correctly, you'd like to see the same level of detail for Python that are shown in this article about R scripts. I am routing your feedback to the feature owners to consider this update. Please feel free to comment if I have misinterpreted your request!

Hi Kate,
exactly. I’m wondering if the same limitations also apply for Python Visuals.
Thanks.
--
Luca Zavarella
From: Kate Follis<EMAIL_ADDRESS>Sent: Friday, February 12, 2021 01:51
To: MicrosoftDocs/powerbi-docs<EMAIL_ADDRESS>Cc: Luca Zavarella<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/powerbi-docs] Similar page for Python Visuals (#2825)
Hi @lucazavhttps://github.com/lucazav - thank you for the feedback on our documentation. If I understand correctly, you'd like to see the same level of detail for Python that are shown in this article about R scripts. I am routing your feedback to the feature owners to consider this update. Please feel free to comment if I have misinterpreted your request!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/powerbi-docs/issues/2825#issuecomment-777894811, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABOSK5IPNE37GUH2526M6XTS6R3NPANCNFSM4XNPYKAA.

Hi @kfollis ,
any update?
Thanks

There are some differences between Desktop and Service, particularly supported packages, so I'm not sure if data limits are the same between the two, but this related link may be relevant--
https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-python-visuals

Hi @msftrien ,
that page is useful for sure!
I also noticed that there is an undocumented limitation: if the input dataset of a Python Visual has a column that contains a string value longer than 32766 characters, that value is truncated. The same thing applies to R Visual.
Can you confirm this and maybe add it to the limitations in the Docs?

Adding to limitations to docs. @mihart I think that should close this?

@msftrien @lucazav ,
Thank you both!  Closing this now.


Update arviz_example_data artifact to v0.1.1

Update arviz_example_data to v0.1.1
Increment version number

Codecov Report

Merging #5 (a88611a) into main (d657775) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #5   +/-   ##
=======================================
  Coverage   84.00%   84.00%
=======================================
  Files           5        5
  Lines          50       50
=======================================
  Hits           42       42
  Misses          8        8

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


AttributeError: 'LineString' object has no attribute 'segmentize'

Please note
I've encountered an error with LineString not having one of its built-in methods that I haven't run into before. I can't add the whole file because of privacy restrictions, but I've added the relevant block. The problem arose when I ran the same code in a new environment - specifically IDLE instead of Anaconda.
Expected behavior and actual behavior.
Expected:
ls.segmentize working as stated in documentation, and in previous runs of the same code
Actual:
Traceback (most recent call last):
File "C:\Users\jcaulkins\OneDrive\Documents\Python Scripts\Heatmap.py", line 206, in
findXY(slice_can_rail, can_rail_ps)
File "C:\Users\jcaulkins\OneDrive\Documents\Python Scripts\Heatmap.py", line 189, in findXY
linestringXY(geom.iloc[i], ps)
File "C:\Users\jcaulkins\OneDrive\Documents\Python Scripts\Heatmap.py", line 156, in linestringXY
myls = ls.segmentize(cell_size)
AttributeError: 'LineString' object has no attribute 'segmentize'
Steps to reproduce the problem.
cellsize = 1000 #1 km
def linestringXY(ls, ps): #takes a LineString and list of (x,y) pairs
myls = ls.segmentize(cell_size)
coords = myls.coords
ps = ps + coords
ls = LINESTRING<PHONE_NUMBER>899743 5329923.425448324,<PHONE_NUMBER>335185 5331910.825356613,<PHONE_NUMBER>277217 5333073.758056914,<PHONE_NUMBER>310401 5334065.741513717,<PHONE_NUMBER>427784 5335351.641466941,<PHONE_NUMBER>790022 5338404.134562917,<PHONE_NUMBER>082505 5340018.836596682,<PHONE_NUMBER>335394 5343722.548524387,<PHONE_NUMBER>643875 5345683.7627762025,<PHONE_NUMBER>523737 5346618.583432958,<PHONE_NUMBER>049097 5348062.624595362,<PHONE_NUMBER>787676 5349155.904663486,<PHONE_NUMBER>474887 5353379.490903853,<PHONE_NUMBER>561897 5354401.414384722) #print output not constructor input
segmentize(ls, [])
Operating system
Windows 11
Shapely version and provenance
Shapely 1.8.2 installed using pip
Others:
geopandas 0.12.2
geoplot 0.5.1
cartopy 0.20.2
fiona 1.9.1
pyproj 3.3.1
packaging 23.0
rtree 1.0.1
numpy 1.24.2
all installed using pip

You will need to ensure that shapely>=2 and GEOS>=3.10 is installed for this feature to work. It seems that you are using an older version of shapely, so this error is expected.

Maybe we should add some "versionadded" notes in method/attribute docstrings?
Closing the issue since the error is expected.


Depend on rubocop >= 0.39

This allows this to work with cookstyle. I believe the 0.42 dep was due to some bug that the rspec folks ran into.

:+1: from me, will change the gemspec and we'll see if anything breaks :)


Variable access to user home directory

I have a build that publishes artifacts to ~/releases, however I cannot find any variable that would allow me to reliably get access to this directory. I can't change the publish directory in my build, so is there any variable, or a variable that can be added that might give access to ~/? Just using ~/ in a task like PublishPipelineArtifact does not work.

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

ID: 9ffebdc8-521c-44b5-cde4-4abdc1bd6f18
Version Independent ID: dc0effda-6d93-62aa-64c5-4e6f283b0826
Content: Predefined variables - Azure Pipelines
Content Source: docs/pipelines/build/variables.md
Product: devops
Technology: devops-cicd
GitHub Login: @andyjlewis
Microsoft Alias: alewis

Hi @ThadHouse thanks for the question. Is there a reason you can't define a variable yourself and use it in your pipeline?

Defining a variable doesn't expand the path, so the PublishPipelineArtifact  still fails because it doesn't support ~/ as part of its path, and the defined variable isn't expanded.

What are you trying to accomplish after the artifact has been published to ~/releases ? Have you thought of using one of the script tasks? That should be able to interpret the ~/ file path.

I'm just trying to publish that entire directory to the azure build artifacts. I guess I could copy all the files to a build relative folder, but that seems to just be adding complication for something that the PublishPipelineArtifact task should support directly.

I understand why you wouldn't want to, normal process would be to use the staging dir or working dir, but if you can't do that, that might be the best option. You can reach out to the Developer Community for a feature request if you would like to see that added as well.


AdsSymbolicServer: please check OnWriteRawValue calls

I'm facing strange problems testing with AdsSymbolicServer (from <PackageReference Include="Beckhoff.TwinCAT.Ads.SymbolicServer" Version="6.0.216" />).
I tried to activate immediate notifications changing line https://github.com/Beckhoff/TF6000_ADS_DOTNET_V5_Samples/blob/2325825ba7ad3f55e6c5b9273b9bf88be9d8b76d/Sources/ServerSamples/AdsSymbolicServerSample/Program.cs#L208 in the provided sample with  this: IDisposable subscription = SubscribeNotifications(session, symbols, NotificationSettings.ImmediatelyOnChange);  and i got strange unexpected behaviours.
So i did some debugging and i realized that the function https://github.com/Beckhoff/TF6000_ADS_DOTNET_V5_Samples/blob/2325825ba7ad3f55e6c5b9273b9bf88be9d8b76d/Sources/ServerSamples/AdsSymbolicServerSample/AdsSymbolicServer.cs#L383-L390 was unexpectedly called during the notification process...
Digging into details with the help of decompiled code of the library Beckhoff.TwinCAT.Ads.SymbolicServer i found 3 point where OnWriteRawValue is obviously called by error instead of OnReadRawValue (they both have compatible signatures so the compiler doesn't catch this!)

into FireNotificationAsync function:

        protected async Task<AdsErrorCode> FireNotificationAsync(AmsAddress address, uint handle, CancellationToken cancel)
        {
            if (!base.IsConnected)
            {
                throw new ServerNotConnectedException();
            }

            ISymbol symbol = notificationTable!.LookupSymbol(handle);
            if (symbol != null && HasValueChanged(symbol))
            {
                int valueMarshalSize = symbol.GetValueMarshalSize();
                byte[] array = new byte[valueMarshalSize];
                OnWriteRawValue(symbol, array.AsSpan());  //***************** WHY????? IS'NT OnReadRawValue ?????
                NotificationDataSample[] stamps = new NotificationDataSample[1]
                {
                    new NotificationDataSample(handle, array)
                };
                return await OnFireNotificationsAsync(address, stamps, cancel).ConfigureAwait(continueOnCapturedContext: false);
            }

            return AdsErrorCode.None;
        }

into createNotificationInformation function:

        private IDictionary<AmsAddress, List<(uint, ISymbol, Memory<byte>, NotificationSettings)>> createNotificationInformation(IEnumerable<ISymbol> symbols)
        {
            bool immediateAccess = true;
            Dictionary<AmsAddress, List<(uint, ISymbol, Memory<byte>, NotificationSettings)>> dictionary = new Dictionary<AmsAddress, List<(uint, ISymbol, Memory<byte>, NotificationSettings)>>();
            foreach (ISymbol symbol in symbols)
            {
                IList<(AmsAddress, uint, NotificationSettings)> notificationInfo = notificationTable!.GetNotificationInfo(symbol, immediateAccess);
                foreach (var item in notificationInfo)
                {
                    if (!dictionary.ContainsKey(item.Item1))
                    {
                        dictionary.Add(item.Item1, new List<(uint, ISymbol, Memory<byte>, NotificationSettings)>());
                    }

                    byte[] array = new byte[symbol.GetValueMarshalSize()];
                    OnWriteRawValue(symbol, array.AsSpan()); //***************** WHY????? IS'NT OnReadRawValue ?????
                    dictionary[item.Item1].Add((item.Item2, symbol, array.AsMemory(), item.Item3));
                }
            }

            return dictionary;
        }

into OnReadWriteValueByNameAsync function:

...
               else if (readLength >= symbol.GetValueMarshalSize())
                {
                    byte[] array3 = new byte[symbol.GetValueMarshalSize()];
                    AdsErrorCode errorCode2 = OnWriteRawValue(symbol, array3.AsSpan());
                    result = ((!errorCode2.Succeeded()) ? ResultReadWriteBytes.CreateError(errorCode2, invokeId) : ResultReadWriteBytes.CreateSuccess(array3, invokeId));
                }
...

Please check and fix the AdsSymbolicServer implementation.
Side note:
i found many other (probably minor?) glitches and issues with your .NET libraries. (i.e. wrong/inconsistent calculations in padding and packing of user defined marshaled data structures). I was able to workaround many of this issues, with the help of various decompilers... but if the source code of the libraries had been available it would have been easier to find and fix issues... Why don't you consider to open the source and share it on github???? You may also receive a lot of PR to fix and improve your product!!!!

@RalfHeitmann any chance to get this fixed???

Sorry for the delay ...
I have produced new 6.0.235 packages that should solve the issues.

Many thanks


I think teku doesn't submit voluntary exits when node is not in sync?

Thanks for raising, this does sound feasible, a lot of the APIs don't interact well when not in sync. We'll have a look and see if we can improve things on this front...
As an aside, it's 'safe' to submit voluntary exits more than once. Much like bls changes, there's no guarantees they make it through to a block (depends on a block producer seeing the message and retaining it) and also no penalty if it's already been seen.


ci: Add 1st NUnit Test to pipeline master

Change list
Following https://github.com/appium/dotnet-client/issues/249
Execute unit tests as a part of CI process
Types of changes
What types of changes are you proposing/introducing to .NET client?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] New feature (non-breaking change which adds value to the project)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Documentation

[ ] Have you proposed a file change/ PR with appium to update documentation?

This can be done by navigating to the documentation section on http://appium.io selecting the appropriate command/endpoint and clicking the 'Edit this doc' link to update the C# example
Integration tests

[ ] Have you provided integration tests to pass against the beta version of appium? (for Bugfix or New feature)

Details
Please provide more details about changes if it is necessary. If there are new features you can provide code samples which show the way they
work and possible use cases. Also you can create gists with pasted C# code samples or put them here using markdown.
About markdown please read Mastering markdown and Writing on GitHub

@Dor-bl Wouldn't this fail all of the iOS tests? Or is this intentional

I've added only a specific test with this argument : --filter Name~CheckAbilityToBuildDefaultService


AQCU-1131: For a start or end date that is open-ended....

....list "Open" versus 9999-MM-DD or 0000-MM-DD

checking this out now @zmoore-usgs

This seems to work great for all the example files; but I do see some errors appearing in my console using them at times related to missing data.
3: In value[[3L]](cond) :
  Returning list() for TSS Rating Curves. Error: Error in validateFetchedData(curves, "Rating Curves", requiredFields, : Data for: ' Rating Curves ' was not found in report JSON.

4: In value[[3L]](cond) :
  Returning list() for TSS Rating Shifts. Error: Error in validateFetchedData(shifts, "Rating Shifts", requiredFields, : Data for: ' Rating Shifts ' was not found in report JSON.

and I think the same comes up in an error on the Check function in Rstudio

The things you're seeing in the console should just be warnings and not errors.
The errors in the check are actual test failures that I also just noticed (most of them are years that were 9999 or 0000 and are now "Open") and am fixing now

Coverage decreased (-0.1%) to 98.801% when pulling 4cf8b312dcb54b391c0faa35a0d8762737afc5d9 on zmoore-usgs:open-dates into cdadec1b08168ca34861ca857e832fbe59b22f38 on USGS-R:master.

:+1:


Streams support

Since the GWT backend doesn't support Java 8 streams, I'm considering to add https://github.com/aNNiMON/Lightweight-Stream-API as a dependency. What do you think?

Looks like GWT 2.8.0 will support Java 8 syntax and hopefully Steam-API with it. They already provide a beta version of it. See here: http://www.gwtproject.org/release-notes.html#Release_Notes_2_8_0_BETA1. Have'nt looked too far into it though.

@fseemann
I'm already using the beta GWT 2.8.0 compiler. I've got into contact with the GWT guys and they said that streams will come in beta 2.
This issue is for support till then. Thanks for looking for it.

There is now an android backend too, and it also lacks Java 8 support. So I had to include Retrolambda (only for the android target) and Light weight Streams API for all the targets. This is now solved.


Re-ordering items inside the inventory setups layout is re-ordering actual bank tabs

When using the invetory setups plugin with layouts enabled, dragging items around will re-order them in the default Jagex bank tabs.

Fixed on master.

The PR is merged, this fix should now be live.


Naming the iterable in the guidance string items breaks guidance in 0.64

Naming the iterable in the guidance string items breaks guidance.
E.g,: using {{~#each items}}  -> results in an error.
This is probably due to some naming collision upstream related to a dictionary. The stacktrace is:
Traceback (most recent call last):
  File "C:\Miniconda3\envs\py10\lib\site-packages\guidance\library\_each.py", line 40, in each
    iter(list)
TypeError: 'builtin_function_or_method' object is not iterable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Miniconda3\envs\py10\lib\site-packages\guidance\_program_executor.py", line 109, in run
    await self.visit(self.parse_tree, VariableStack([self.program._variables], self))
  File "C:\Miniconda3\envs\py10\lib\site-packages\guidance\_program_executor.py", line 559, in visit
    visited_children.append(await self.visit(child, variable_stack, inner_next_node, inner_next_next_node, inner_prev_node, node, parent_node))
  File "C:\Miniconda3\envs\py10\lib\site-packages\guidance\_program_executor.py", line 524, in visit
    command_output = await command_function(*positional_args, **named_args)
  File "C:\Miniconda3\envs\py10\lib\site-packages\guidance\library\_each.py", line 42, in each
    raise TypeError("The #each command cannot iterate over a non-iterable value: " + str(list))
TypeError: The #each command cannot iterate over a non-iterable value: <built-in method items of dict object at 0x00000264C84C9B40>

I can't easily fix it without grokking handlebars/the parse tree, but it's easy to reproduce.
Note that this was new from 0.62 -> 0.64 and was a pain to debug.
To Reproduce
Just rename examples -> items in the example.
import guidance
# set the default language model used to execute guidance programs
guidance.llm = guidance.llms.OpenAI("text-davinci-003")

# define the few shot examples
examples = [
    {'input': 'I wrote about shakespeare',
     'entities': [{'entity': 'I', 'time': 'present'}, {'entity': 'Shakespeare', 'time': '16th century'}],
     'reasoning': 'I can write about Shakespeare because he lived in the past with respect to me.',
     'answer': 'No'},
    {'input': 'Shakespeare wrote about me',
     'entities': [{'entity': 'Shakespeare', 'time': '16th century'}, {'entity': 'I', 'time': 'present'}],
     'reasoning': 'Shakespeare cannot have written about me, because he died before I was born',
     'answer': 'Yes'}
]

# define the guidance program
structure_program = guidance(
    '''Given a sentence tell me whether it contains an anachronism (i.e. whether it could have happened or not based on the time periods associated with the entities).
    ----

    {{~! display the few-shot examples ~}}
    {{~#each items}}
    Sentence: {{this.input}}
    Entities and dates:{{#each this.entities}}
    {{this.entity}}: {{this.time}}{{/each}}
    Reasoning: {{this.reasoning}}
    Anachronism: {{this.answer}}
    ---
    {{~/each}}

    {{~! place the real question at the end }}
    Sentence: {{input}}
    Entities and dates:
    {{gen "entities"}}
    Reasoning:{{gen "reasoning"}}
    Anachronism:{{#select "answer"}} Yes{{or}} No{{/select}}''')

# execute the program
out = structure_program(
    items=examples,
    input='The T-rex bit my dog'
)

Python 3.10.11
Windows 10/11

Hello,
just noticed this myself too.  Took me a while to figure it out ^^
This also happens with "geneach" block.
Code to reproduce
guidance.llm = guidance.llms.OpenAI("text-davinci-003")

prompt = guidance("""
Shopping List:
{{#geneach 'items'}}
{{gen 'this' stop='\n'}}
{{~/geneach}}}}
""")

res = prompt()
print(res)
# print(res["items"])

Traceback
Traceback (most recent call last):
  File "/home/simon/workspaces/master/llm-thought-framework/venv/lib/python3.10/site-packages/guidance/_program_executor.py", line 109, in run
    await self.visit(self.parse_tree, VariableStack([self.program._variables], self))
  File "/home/simon/workspaces/master/llm-thought-framework/venv/lib/python3.10/site-packages/guidance/_program_executor.py", line 559, in visit
    visited_children.append(await self.visit(child, variable_stack, inner_next_node, inner_next_next_node, inner_prev_node, node, parent_node))
  File "/home/simon/workspaces/master/llm-thought-framework/venv/lib/python3.10/site-packages/guidance/_program_executor.py", line 524, in visit
    command_output = await command_function(*positional_args, **named_args)
  File "/home/simon/workspaces/master/llm-thought-framework/venv/lib/python3.10/site-packages/guidance/library/_geneach.py", line 129, in geneach
    variable_stack[list_name] = variable_stack.get(list_name, []) + [block_variables]
TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'list'

So this bug also spills over to pretty much anything in the parser.
I've been trying to add/fix tool calling with array parameters as some APIs require those and guidance can't do arrays.
As I went to fix it, it seems to be converting the {{> partial tooldef to a ```typescript definition, then back to a json schema, then extracting it, or some jumble of those 4 steps that I as a junior dev can't understand why.  long story, but I'd already fixed one conversion, only to find out that the second conversion doesn't work because it won't read "items" at all.

I downgraded from guidance 0.0.64 to version 0.0.57 and it fixed this issue for me.

Changing my version to 0.0.57 from 0.0.68 fixed this issue for me.

Minor update: Guidance was a great project and really clean.
(Unfortunately, I haven't been able to do much coding recently for good reasons) but from what I can tell, there haven't been many updates or clear direction from the owners.
Because of this and due to the importance of the new OpenAI function calling, which doesn't seem supported well in Guidance, I ended up going back to just plain Python or my own abstractions to orchestrate calls.
I still use old versions of Guidance though.

Please checkout our new release, where we did away with handlebars and everything looks more like pure python :)


Push dataset schema documentation missing

Hi All,
I am evaluating the suitability of Push datasets for a customer. I was unable to find any documentation which would confidently tell me what aspect of the Tabular model is supported and what is not.
Links I have looked at
Link to Microsoft docs on Push datasets
Link to Microsoft docs on step by step walk through on Push datasets
Using a BIM file from Visual Studio SSDT
Can I use the BIM file of an Analysis Server project or a BIM file generated by SSDT?  I like this becaues the JSON format of the file gives me GIT integration and CI/CD and Pull Request review. These are very essential for our customer's environment and not something easily doable with out of box PBIX/PBIT.
BIM file from Tabular Editor seems to be supported
A BIM file generated from PBIT using the Tabular Editor tool appears to be a possibility.  YouTube video from Marco Russ on on GuyInACube channel .
Thank you,
Sau

Thanks for posting – note that we can only answer feedback related to the documentation, and can’t provide direct support or respond feature requests.
Your best venue for getting an answer or feedback on your question is from the community (https://community.powerbi.com) or from support at https://support.powerbi.com. You can also provide feedback using the Give Product Feedback button at the bottom of the article page.


Use Zeus instead of Apollo for permafrost mini-maps

The data and styles are already in Rasdaman on Zeus, but when I tried pointing the web app to Zeus instead of Apollo, it produced errors like this (when I loaded a WMS HTTP request directly in a browser):

"Catched an unexpected error 'MIME type is not supported, given 'image/png'.' when processing WMS request."

We need to figure out how to fix this before using Zeus.
Example URLs:
https://zeus.snap.uaf.edu/rasdaman/ows?service=WMS&request=GetMap&layers=iem_gipl_magt_alt_4km&styles=climate_impact_reports&format=image%2Fpng&transparent=true&version=1.3.0&dim_era=4&dim_model=3&dim_scenario=2&width=256&height=256&crs=EPSG%3A3338&bbox=0,1572863.9999999995,524288.0000000007,2097152.0000000075
https://zeus.snap.uaf.edu/rasdaman/ows?service=WMS&request=GetMap&layers=iem_gipl_magt_alt_4km&styles=climate_impact_reports&format=image%2Fpng&transparent=true&version=1.3.0&dim_era=4&dim_model=3&dim_scenario=1&width=256&height=256&crs=EPSG%3A3338&bbox=0,1048575.9999999963,524288.0000000003,1572864.0000000065
https://zeus.snap.uaf.edu/rasdaman/ows?service=WMS&request=GetMap&layers=iem_gipl_magt_alt_4km&styles=climate_impact_reports&format=image%2Fpng&transparent=true&version=1.3.0&dim_era=2&dim_model=3&dim_scenario=1&width=256&height=256&crs=EPSG%3A3338&bbox=0,1572863.9999999995,524288.0000000007,2097152.0000000075

Thanks for adding these queries to the ticket Craig! That helped me track down the problem!
The issue turned out to be missing development libraries for PNGs on the host server, which in turn was unable to create PNGs as output. By installing libpng-devel on the server, those queries above are all returning as desired.


TECH-123: CircleCI configuration for running tests in bb-scheduler

CircleCI configuration has been added.
Ticket: https://govstack-global.atlassian.net/browse/TECH-123

@KarolinaKopacz CI is failing due to missing tests suite, I'll merge your PR.


Multi Contract ABI resolver fix (phase A)

In this phase, if multiple contracts are provided within the single file including libraries and interfaces, correct abi will be built and displayed.
Additionaly, common package is now obsolete. Each respective package has it's own types.go.
Following PR closes #26

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

78 of 104 (75.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.5%) to 76.447%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

abis/helpers.go
10
14
71.43%

abis/parser.go
46
68
67.65%

Totals

Change from base Build<PHONE_NUMBER>:
0.5%

Covered Lines:
951

Relevant Lines:
1244

💛  - Coveralls


about merge_train_anno_json.py Q

train_1_json_path = '/tcdata/tile_round2_train_20210204_update/train_annos.json'
train_2_json_path = '/tcdata/tile_round2_train_20210208/train_annos.json'
train_json_path = '/work/data/data_guangdong/tile_round2/train_annos.json'

with open(train_1_json_path, 'r') as f:
    annos_one = json.load(f)

with open(train_2_json_path, 'r') as f:
    annos_two = json.load(f)

annos = annos_one + annos_two
with open(train_json_path, 'w') as f:
    json.dump(annos, f)

I have a question: are these two JSON training sets? Why merge them?

Yes, the train annotations consist of two parts.


Defaulting harvest times to 5 seconds for integration tests

Overview

Defaulting the harvest time to 5 seconds for all features when running integrations tests. This is a sweet spot where tests don't fail due to race conditions and timings but the tests are a bit faster.
Related Issue(s)

N/A
Testing

Run jil tests locally and make sure nothing fails.

We will need to do more investigation around test failures in regards to the default harvest time. Closing for now.


Not setting project should not raise

One suggestion I have is not to raise an exception unless there is exceptional behavior. In the case of not having a project set, not all systems require users to set a project, so we should not enforce that by raising IMO. This would also apply to #6

If people are ok with this idea would you be interested in submitting a PR
to resolve this?
On Fri, Mar 2, 2018 at 5:57 AM, Brandon Bocklund<EMAIL_ADDRESS>wrote:

One suggestion I have is not to raise an exception unless there is
exceptional behavior. In the case of not having a project set, not all
systems require users to set a project, so we should not enforce that by
raising IMO. This would also apply to #6
https://github.com/dask/dask-jobqueue/pull/6
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-jobqueue/issues/7, or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszCKXv7MNDF2PSnWibEKVfPkhW_-hks5taSWGgaJpZM4SZupT
.

I'd be happy to help. distributed Clients running on MPI is a core use case for us over at ESPEI

I think we could take some time to rethink the specification of cluster specific configuration options (project included). I've not worked on two computers that use identical syntax for the batch script headers so this is something we're going to run into repeatedly.

for the sake of argument, what if we changed the current cluster signature from:
PBSCluster(name='dask',
           queue='regular',
           project=None,
           resource_spec='select=1:ncpus=36:mem=109GB',
           threads_per_worker=4,
           processes=9,
           memory='7GB',
           walltime='00:30:00',
           interface=None,
           death_timeout=60,
           extra='',
           **kwargs)

to something more flexible like:
cluster_kws = {}
job_args =  ['-l select=1:ncpus=36:mem=109GB', '-l walltime=00:30:00',
                 '-q regular', 'A PROJECT']
worker_kws = dict(threads_per_worker=4, processes=9, memory='7GB',
                  interface=None, death_timeout=60, extra='',)

PBSCluster(name='dask', cluster_args=cluster_args, job_args=job_args,
           worker_kws=worker_kws)

where the job script is created programmatically:
header = ['#!/bin/bash', '#PBS -N %(name)s' % name]
header.extend(['#PBS %(arg)s' for arg in cluster_args])
header = '\n'.join(header)

I agree that this might provide a valuable escape hatch for unique cluster situations.  I am slightly concerned that people are no longer prompted with options like wall_time=, threads_per_worker= etc, that they might use if presented with the option.  I wonder if we can do a mix of explicit keywords alongside catch-all dictionary keywords.

From my point of view, it would be better to keep explicit keyword at least for basic PBS or Dask options.
And as @mrocklin said, mixing it with dictionary keywords or lists as proposed by @jhamman  seems really good.
I would also suggest to explicitly tell wether this is PBS or Dask keyword, so something like that:
PBSCluster(pbs_name='dask', pbs_resource_spec=None, pbs_walltime='00:30:00',
    pbs_queue=None, pbs_project=None, pbs_extra=[],
    dask_worker_threads=1, dask_worker_processes=1, dask_worker_memory='4GB',
    dask_interface=None, dask_worker_death_timeout=60, dask_extra='')

I feel that already proposed arguments are perfect, and the most used ones. In our cluster, we have a default for all PBS options, but the usual minimal options to set are the job name and the walltime. Since we are talking about starting a cluster here, we can add to that the resource_spec. I would almost suggest to create 3 args from the PBS resource_spec arg:
pbs_chunk_nbr=1 # or pbs_select=1
pbs_chunk_ncpus=36
pbs_chunk_mem='109GB'

But it is maybe overkill.
I was searching if there was a need for dask_scheduler options, but as I understand from code (Did not try it yet), the scheduler is launched directly from where the PBSCluster is created, using a Localcluster. So this means either on a interactive or frontal cluster node, or directly in a notebook. I guess this is OK regarding the resource footprint of the scheduler (CPU, RAM)? What I mean is, we do not want to spawn a specific qsub job for the scheduler?
For information, see below PBS complete option list, I don't think there is anything else needed except in specific cases.
qsub [-a date_time] [-A account_string] [-c interval]
            [-C directive_prefix] [-e path] [-f] [-h]
            [-I [-G [-- <GUI application>]] | [-X]] [-j join] [-J range] [-k keep] [-l resource_list] [-m mail_events] [-M user_list] [-N name] [-o path] [-p priority] [-P project] [-q destination] [-r
            c] [-S path_list] [-u user_list] [-v variable_list] [-V] [-W additional_attributes] [-z] [script | -- executable [arglist for executable]]

Hm, it just occured to me that every PBS options given was for the launch of only one worker... I know, I should have RTFM, at least better. But maybe it should be more transparent from the keywords name?
This does not change a lot from what I wrote above, maybe the resource_spec default value should be set (and a little lower that what is currently proposed), for example select=1:ncpus=2:mem=10GB. And we shall never have selected chunk to more than 1.
Also, maybe we should provide a n_workers keyword directly in the PBSCluster constructor, as with LocalCluster, or KubeCluster? And start right away the cluster? I don't have a strong point on that, it would just be more consistent with other Dask provided cluster.

I'm also fine with a more fine grained approach (as mentioned by @guillaumeeb). The thing we really need here is the ability to construct the header programatically. That should allow us to drop the JobQueueCluster._template attribute all together. This is not something I'm likely to get to in the short term so if anyone else wants to take a swing at it, that would be great.

So if I understand correctly, what you really want to avoid is to have fixed header options as it is now, and thus m=be more generic to cluster specific needs. So instead of using the _template, with a fine grained approach, the PBSCluster.__init__ would look something like this:
header = ['#!/bin/bash', '#PBS -N %(name)s' % name]
if queue != None:
    header.append('#PBS -q %(queue)s' % queue)
if project != None:
    header.append('#PBS -A %(project)s' % project)
...
header.extend(['#PBS %(arg)s' for arg in pbs_extra])
self._script = '\n'.join(header)

#build dask worker comand and add it to self._script
...

And then we should modify the JobQueueCluster.job_script() function, to only modify the worker index in the _script attribute.

@mrocklin @jhamman, if you confirm you expect something like thiw, I could work on this next week. It would probably has an effect on core class and every scheduler impl though.

@guillaumeeb - yes, your example above is more or less what I was thinking of. There are probably many ways to do this but I think you have the basic idea of what I was shooting for.

I would like to avoid prefixes like pds_*.  These seem unnecessary given PBS in the name of the class.

That's fine with me, I will work on a pull request on this basis. Thanks for the comments.

Another point, as it seems a lot of code in PBSCluster or in SLURMCluster is duplicated and generic. What is your opinion about increasing the abstract class side of JobQueueCluster (which is already the case, but make it more so)? I would like to use the JobQueueCluster.__init__ to put all the LocalCluster initialization and Dask worker command line construction in JobQueueCluster, but without using a mechanism like ABC, it would make JobqueueCluster class instantiable.
How do you feel about that?

No immediate objection from me.  I recommend making a PR with a proposal.
On Sun, Mar 11, 2018 at 12:10 PM, Guillaume EB<EMAIL_ADDRESS>wrote:

Another point, as it seems a lot of code in PBSCluster or in SLURMCluster
is duplicated and generic. What is your opinion about increasing the
abstract class side of JobQueueCluster (which is already the case, but make
it more so)? I would like to use the JobQueueCluster.init to put all
the LocalCluster initialization and Dask worker command line construction
in JobQueueCluster, but without using a mechanism like ABC, it would make
JobqueueCluster class instantiable.
How do you feel about that?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-jobqueue/issues/7#issuecomment-372126887,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszFdg88-2XGL1lRSaNBBJfZna1-pMks5tdUxigaJpZM4SZupT
.

Do we want python 2 compatibility?
(Sorry for all my questioning).

If we plan to drop Python two that's probably a larger discussion.  I
recommend that that be raised as a separate issue.
Short term I recommend supporting it so that you can make progress without
waiting on the larger decision.
On Sun, Mar 11, 2018 at 12:23 PM, Guillaume EB<EMAIL_ADDRESS>wrote:

Do we want python 2 compatibility?
(Sorry for all my questioning).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-jobqueue/issues/7#issuecomment-372127871,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszH3CMp8EYmgFXGWndVvngmLaA8D_ks5tdU98gaJpZM4SZupT
.

I believe this issue can be closed too?


Corrected a spelling error

When creating a new PR, please do the following and delete this template text:

Reference the issue number if there is one:
Fixes #Issue_Number

The "Fixes #nnn" syntax in the PR description causes
GitHub to automatically close the issue when this PR is merged.

Suggest reviewers if you know who should review the PR, using the GitHub Reviewers UI.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

@madebyjeffrey Thanks!


Improve touch tap performance

to: @majapw @lencioni
This PR skips expensive modifier calculations that slow down render performance. These modifiers are computed for every calendar day, which becomes problematic on mobile if we're showing more months.
I instrumented the time spent in each modifier and tested on my Pixel. The total time is ~400ms. 70ms were spent for the today check, and 60ms were spent in the hover checks. I've disabled hover for mobile and added the optional to skip the today check.
The calculateToday prop isn't the cleanest approach, but I think the perf problem is serious enough to address immediately as we work on a more general fix. On this note, I've discussed an approach with Maja of computing these modifiers strictly at the top level instead of lazily at the leaves. This will allow optimizations like only computing today once and only recomputing affected date ranges.

Coverage remained the same at 87.322% when pulling 76c19cf5978609652168a75d5c77dacef42d9a24 on moonboots:jack-tap-perf into f1cee85aeeb8b92119ccfc8a5a424ab0107eb307 on airbnb:master.

@majapw I remove the calculateToday commit (will keep this handy 😉 ) ptal

Coverage remained the same at 87.322% when pulling 1988d19f4863c6238ec344f4b3bbd12269f093f5 on moonboots:jack-tap-perf into f1cee85aeeb8b92119ccfc8a5a424ab0107eb307 on airbnb:master.

Coverage remained the same at 87.322% when pulling fd4890c5ac25d4fa2896551ef867def81fd5217a on moonboots:jack-tap-perf into f1cee85aeeb8b92119ccfc8a5a424ab0107eb307 on airbnb:master.

Coverage remained the same at 87.322% when pulling d2e2320974aa2047b800d0be1e42d1780341e644 on moonboots:jack-tap-perf into f1cee85aeeb8b92119ccfc8a5a424ab0107eb307 on airbnb:master.

Hey, I came across this part of the code recently, and I'm not sure how    ...startDate && { .. } is working.
Can someone explain what they are doing here? startDate is a moment obj, so it throws an error when I try this in console. @moonboots @majapw

Hi @palashkaria, this code doesn't even exist anymore in react-dates but what it was doing was spreading the result of startDate && { ... } onto the object. if startDate is a moment object and therefore truthy, then startDate && { ... } just evaluates to { ... } which is spread onto the parent object. If startDate is falsey, ie null or something similar, then startDate && { ... } resolves to null which does nothing when passed into the spread operator.
Spreading (leading ...) means putting then contents of the object onto the parent. Basically, it's the new Object.assign.

Hey, @majapw
I tried this in chrome, and it didn't work, probably not supported by chrome yet in this syntax, hence I got confused
I see that now you do modifiers in CWRP, right? I was probably looking at an old version. Thanks for the quick explaination.


existential type resolution

cc @nikomatsakis

These notes seem incomplete but better than nothing. If travis is happy, I'm inclined to merge.


MTMVSupport master and follow change in multi fe for mtmv

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 36.37 seconds
load time: 542 seconds
storage size:<PHONE_NUMBER>5 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230128063329_clickbench_pr_85379.html


Create mixed-reality.md

Create the overview page of reference for Azure Mixed Reality Resource Management Libraries for .NET

Docs Build status updates of commit 940beaf:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/overview/azure/mixed-reality.md
:white_check_mark:Succeeded
View

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


Use Scan Rather Than Keys When Getting Status Job IDs

As mentioned in this issue the method keys can be tough on Redis. I went ahead and replaced it with a scan combined with the match option which will filter down the keys. I ran all the specs locally and they passed. Given this is an implementation detail I didn't think additional specs were necessary.  Let me know what you think! Thanks!

The first CI failure was a timeout, looks like it resolved on the recent build.

LGTM @kenaniah Do you see any further issues before we merge this?

Is merging this still on the roadmap?

@betesh I haven't had the time to dive into this PR yet, but will have some free time next week to review / merge. Timeline would be a gem release on next Monday if all goes well.

From what I found in the Redis SCAN docs (https://redis.io/commands/scan#scan-guarantees):

A given element may be returned multiple times. It is up to the application to handle the case of duplicated elements, for example only using the returned elements in order to perform operations that are safe when re-applied multiple times.

^^ This leads me to believe that we may need to call #uniq on the results after the scan is completed. Thoughts?
Aside from the potential duplicate elements, this looks good to me.

thanks!

This is an improvement (scan instead of keys) but still relies on traversing all keys in Redis each time a paginated set of results are served up on the stats page.
Suppose your Redis instance has 100,000 keys, and say, I dunno, half of them are for sidekiq status.
In order to serve up a single page request for the sidekiq-status stats page, prior to this PR that would have required an expensive keys call in which Redis server would load and funnel all results matching the pattern "sidekiq:status:*".
This PR replaces that with scan_each which, under the hood, means it will make a series of scan calls. You've specified the count as 100 so it will fetch 100 matching results at a time, until it has finished traversing all keys. So this PR means you've exchanged one expensive keys call with a potentially large number of scan calls. That still seems like a heavy price to pay to serve up a single page worth of results. ie. in order to display, what, 25, 50 or 100 results on a page, the server issues a series of scan calls to traverse the entire key set. Not to mention the page continues to load all matching keys into memory in order to do pagination and sorting in-memory. As well as the Sidekiq::Status.get_all jid calls for every sidekiq::status jid, prior to pagination:
https://github.com/mstruve/sidekiq-status/blob/6312028d8977ae0f07532e583c7f9dc53939deb1/lib/sidekiq-status/web.rb#L86
Please consider instead the following 2 options:

(Easier)
Keep the current data structure, drop sorting and no-dupes guarantees in pagination. Use scan instead of scan_each and use the cursor value as the offset (starting point for the next page's results). Ignore the risk of duplicates (Google's results often have dupes from one page set to another, shrug...) and give up on sorting.
Add a search input to make up for the lack of sorting.

(Harder)
Change the data structure. Store sidekiq status information inside sorted sets. Use zscan to traverse them. Storing sidekiq status info in sorted sets eliminates the need to search among all keys. Consider simplifying by only offering one sorting option (oldest-to-newest). Each page's results could again use zscan and a cursor as offset.
Once again consider adding a search input.
(Note that you could maintain support for multiple sorting methods by storing status info in multiple sorted sets, one per sort field and order; but that seems like a lot of clutter to add for a feature that doesn't seem that critical)

https://github.com/catwell/redis/commit/7e9aa29deafa6ec2ebe84ed2156695f02a70d2e8 would make it possible to use scan_each in a scalable way or to avoid duplicates if you were to go with @benissimo's first suggestion.


Support for whitelisting dependency-only installs in brew bundle

I use Homebrew to install dependencies for some programs that I compile from source, and I specify those in my Brewfile like this:
brew "erlang", args: ["only-dependencies"]
brew "postgresql@14", args: ["only-dependencies"]

Which works great, but when running brew bundle --cleanup, the dependencies for erlang and postgresql@14 get uninstalled. I can easily remedy this by running brew bundle afterwards, which will reinstall those dependencies, but it would be nice if I didn't have to do that.

I do this, too, but for the python formula. I don't run brew bundle --cleanup, though, ever (it runs brew bundle cleanup --force after brew bundle). I work in too many projects with dissimilar environments… I'd spend a lot of time (re|un)installing.

this is a brew behaviour, not bundle so you can add (unsupported) args: ["--ignore-dependencies"] to the formula themselves and explicitly call out your dependencies. iirc, this will work in reverse and only remove the formula but not the dependencies.

The supported solution for this is to just install these dependencies explicitly and then use brew bundle dump to keep them in your Brewfile. Passing on this given this and above workarounds, sorry!


Update Python tutorials to be Python 2.x and 3.x compatible

We already have the code updated.

@hairyhum assigning to you so that you can take a look at the tutorials repo :) This can (and should) go live immediately, so please branch off of live.

Fixed and deployed.


Open Preview action on a markdown file is not shown when right clicking on the file in tabs mode

#7945
Steps to Reproduce:

Enable Tabs
Open any md file
Right click on the file title to open preview
Right click on the source file again (Note that source file is not in focus)

Open preview action is not shown

I wasn't able to reproduce but iff it's an issue with the context menu not picking up any contributed commands. Also the (at least disabled) 'Switch to Changes View' action doesn't show.

@bpasero
I am still able to reproduce this in this build - a21c12346f388e51858c930875ca30968604c116 with following steps:

Enable tabs
Open a .md file
Open any other file. Now this file is active
Right click on the tab of .md file

You do not see the options

@sandy081 this is currently as designed, we do not show editor actions for an editor that is not active.

@bpasero Then I see some inconsistency here. See the pictures with tabs disabled and enabled.
When tabs are disabled, actions are not shown on editor which is not active.
When tabs are enabled, actions are shown on editor which is not active.
That's why I expected to see actions in above case.

@sandy081 that is true but that is a different case. In your issue you right click on an editor that is NOT EVEN visible and expect editor actions to show.
In your new example, all editors are visible and so we can show those actions in the menu. Initially I did not have those actions in there but I got another bug where someone was looking for them.
It is purly a UX decision to not show the actions when tabs are disabled and the editor is inactive. No technical reason otherwise.


Problem in Math Evaluation

The grader used in math evaluation (PAL-MATH) cannot pass the _test_math_equal(). All three samples returned False.

Solved, it's due to missing installation of a package that supports parse_latex. BTW, it seems that the ground truth answer format for MATH dataset is different from standard latex, e.g. \frac{1}{2}v.s. \\frac{1}{2}. Seems to have bugs with slightly different format.


Added logic to get project from selected item if null

Added null check for project and getting it from VsHelpers.GetProjectOfSelectedItem if null

Raquel is going to look into this further to see why project is null.

Closing this as @raquelsa is fixing this issue in https://github.com/aspnet/LibraryManager/pull/105


debugging featurenet(s)

Description
fixes for fork-off tool: with addition of contracts pallet there are now child state keys in storage. These keys throw when bootstrapping node from a forked chainspec (https://github.com/Cardinal-Cryptography/substrate/blob/98c2eeea74413044ae8ccfca1b6d56d01b57a76b/client/db/src/lib.rs#L778). We omit those keys
Type of change
Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)

Checklist:

I have made neccessary updates to the Infrastructure

maybe change a bit the PR's title :P


fix for issue 4047

CLI will verify if args passed with --file exists and if not, throws error createNoFilesMatchPatternError("File ${FileName} not found")
Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
All new code requires tests to ensure against regressions.

Description of the Change

Alternate Designs

Why should this be in core?

Benefits

Possible Drawbacks

Applicable issues

Coverage decreased (-0.02%) to 94.051% when pulling 15e61a35babfac177409db3a7192c872897366ca on krishnq:master into 185cada8149c4dcac1896769c2b7732e9dbe971f on mochajs:master.


Suggestion: Add presets for smart payments

Right now, users have to lookup the oracle address, find out the data feed name and construct the expected value string. This could be made easier for often used events like a bitcoin payment, where the user could just have to enter the BTC address and the amount received.

already working on per-oracle validation rules


Delete old code that is not used in the live-results flow

This code should all be unused now. The GitHub API method that triggered this code path has also now been removed.
I've done a couple of MRVA runs using this branch and it seems to be working just fine.

In order to merge this, I removed the branch protection requirement for the integration-test CI status that was removed in this PR.


Please include scope constants for HangoutsChat

It looks like many of the services include constants for their scopes, but none are set for hangouts/chat. I'd love to see these added in.

Hi @stecca21,
The services here are autogenerated, so we're not able to add it ourselves. I suggest you report this to the Hangouts Chat team using the public issue tracker. Ask them to provide the available service scopes in the API discovery document. Once they've done that, they'll appear in this library like magic. 🌟


Carthage installation error

Steps to reproduce the issue

add github "pocketsvg/PocketSVG" ~> 2.6
carthage update
Error message appears : "Dependency "PocketSVG" has no shared framework schemes"

Specifications

PocketSVG Version:  2.6.0
Xcode Version: 12.0.1
iOS/macOS Version:

@linhleduy just a quick update from me. I'm able to reproduce your issue but I can't figure out a fix.
I opened an issue over at Carthage: https://github.com/Carthage/Carthage/issues/3146
Will keep you posted!

looks like this has been fixed in Xcode 13. Feel free to reopen this ticket if there are still issues.


extra logging

Codecov Report

Merging #601 into master will decrease coverage by 0.08%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #601      +/-   ##
==========================================
- Coverage   89.96%   89.88%   -0.09%
==========================================
  Files          41       41
  Lines        3180     3183       +3
==========================================
  Hits         2861     2861
- Misses        319      322       +3

Impacted Files
Coverage Δ

vent/core/rq-worker/file_watch.py
53.93% <0%> (-1.89%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fdd1666...905f970. Read the comment docs.


Pg improvements

Below are three possible improvements which could be applied to postgres mq implementation:

add index on next_delivery_idx
set autocommit to false (more on that here: https://stackoverflow.com/questions/41202242/reset-autocommit-on-connection-in-hikaricp)
set maximum pool size to match the connectionThreadPoolsSize

It would be the best to test them separately to see if they bring any benefits alone and only later combine them to create ultimate solution. (Each improvement is done in a separate commit).
Useful commands when debugging if index is being used:
select * from pg_stat_all_indexes where relname = 'jobs';

SELECT
    relname                                               AS TableName,
    to_char(seq_scan, '999,999,999,999')                  AS TotalSeqScan,
    to_char(idx_scan, '999,999,999,999')                  AS TotalIndexScan,
    to_char(n_live_tup, '999,999,999,999')                AS TableRows,
    pg_size_pretty(pg_relation_size(relname :: regclass)) AS TableSize
FROM pg_stat_all_tables
WHERE schemaname = 'public';

Does that mean these improvements made a difference? Can I ask how much each of them contributed to the final results?

There was no significant improvement, but still the index seems to be the right choice, so we included it. @robert-dziewonski will have more details and we'll update the blog sometime soon


[IOTDB-174] Fix querying timeseries interface cannot make a query by the specified path prefix

Corresponding to JIRA issue: https://issues.apache.org/jira/browse/IOTDB-174

Fix the bug which the querying timeseries number interface cannot make a query by the specified path prefix.
Fix the documentation corresponding to the query operation (add the device in path).

I have added the SQLException to remind users if they enter the wrong child node.

One more suggestion: the header of this pr is a little bit general. Make it more specific would be better.

Please wait a moment for this PR as my computer was crashed these days and was sent for the repair these days.

Hi, I have no idea now about how to implement the interface which could show all device here as it was not developed by me before. What I done is just making sure that the program does not report the error.
However, I would like to discuss with you guys about how to make changes of this function, could you please give me some advices? I think this should create another PR for this or reopen PR #421 to correct this issue.

Please modify the SQL Reference document to add COUNT clause.

I have added the new schema statement in it. Please have a look.

There are failing tests.


[IOTDB-5902] Fix cluster restart bug about mlog.bin

https://issues.apache.org/jira/browse/IOTDB-5902
This PR has been approved by  https://github.com/apache/iotdb/pull/9893

Please push another commit to trigger the CI.

Please push another commit to trigger the CI.

The other commit  https://github.com/apache/iotdb/pull/9893 has some error configuration about git, so I closed the PR 9893 and use this new PR.

Please push another commit to trigger the CI.

The other commit #9893 has some error configuration about git, so I closed the PR 9893 and use this new PR.

Got it. We still need the CI, which can be triggered by another commit push,  to confirm that this pr is ok to be merged.


Feat/ROE-2638: Retrieve application data from DB for the overseas-entity-due-diligence page

JIRA link
https://companieshouse.atlassian.net/browse/ROE-2639
Change description

Retrieves application data from the API for the overseas-entity-due-diligence page/screen
Modifies tests to match new/updated functionality
Includes minor formatting changes

Work checklist

[x] Tests added where applicable
[x] UI changes meet accessibility criteria

Code changes look fine. A query on the branch name referencing a different JIRA story...

Good spot, thanks. Fixed now.


How to enable CORS for dynamic route?

@bitrate16 Would you mind to look upon it?

Could you please give an example of what does CORS for dynamic route means? I'm not very familiar with CORS

@bitrate16 I have used aiohttp dynamic routes to my application on-fly. And to consume those routes I have a Angular based GUI client to access these. Therefore we need to setup CORS to the dynamic routes so that Preflight request (OPTIONS) that is sent by the browser before the actual request should handle.
Here is the usage of Cross Origin Resource Sharing (CORS) https://github.com/aio-libs/aiohttp-cors#usage
This is I have used for the old routes in my application

def enable_cors(app):
    """ implements Cross Origin Resource Sharing (CORS) support """
    import aiohttp_cors
    # Configure default CORS settings.
    cors = aiohttp_cors.setup(app, defaults={
        "*": aiohttp_cors.ResourceOptions(
            allow_methods=["GET", "POST", "PUT", "DELETE"],
            allow_credentials=True,
            expose_headers="*",
            allow_headers="*",
        )
    })
    # Configure CORS on all routes.
    for route in list(app.router.routes()):
        cors.add(route)

Now I want to use the same CORS for dynamic routes.

@ashish-jabble
In case when you don't need route-specific CORS for your webapp (for example when you want to ALLOW_ALL or use same rules for all paths) you may use aiohttp-middlewares as middleware.
For example:
import aiohttp_middlewares

app = aiohttp.web.Application(middlewares=[
	aiohttp_middlewares.cors_middleware(allow_all=True), # CORS pass
)

This will act as middleware for all handlers, including dynamic.
In other case I will look how to implement it later.

@bitrate16 Above will only work with Python3.7+.
My Project has minimum Python 3.6 supported so it does not fit to my requirement. Also I am avoiding to add new dependency unless no possibilities with existing.
FYI, Below are the aiohttp Pip packages I have used so far
aiohttp==3.8.1
aiohttp_cors==0.7.0
aiohttp-dynamic==1.3.0

Is there any possibility to achieve CORS support with your aiohttp-dynamic?
Thanks in advance!

For now I don't know the best way of implementing this cross-library support because my extension operates using different route representation (dict vs wrapper object) and this would require rewriting this part of the code that is not possible for me now due to the lack of time.


🔄 Synced file(s) with jhudsl/DaSL_Course_Template_Bookdown

Synced local file(s) with jhudsl/DaSL_Course_Template_Bookdown.

Changed files

Synced local  .github/workflows/render-bookdown.yml with remote  .github/workflows/render-bookdown.ymlCreated local  .github/workflows/docker-build-test.yml  from remote  .github/workflows/docker-build-test.ymlSynced local directory .github/ISSUE_TEMPLATE/ with remote directory .github/ISSUE_TEMPLATE/Synced local  code_of_conduct.md with remote  code_of_conduct.md

This PR was created automatically by the repo-file-sync-action workflow run #1417570067

Please carefully review these changes and decide which are useful for your course.
See the release notes: https://github.com/jhudsl/DaSL_Course_Template_Bookdown/releases

If you don't want the changes from a particular file, you can always revert that particular commit before merging the sync PR.
If you will not want any updates on this file in the future, you may want to remove a file from being synced in your repo by reconfiguring the sync file.

If you want only some changes, but they are not on a whole file basis, you could check out the branch and make manual edits. To checkout the branch, navigate to your own repository you should be able to run:

git checkout repo-sync/DaSL_Course_Template_Bookdown/default

If you don't want any of the changes you can close the PR entirely.

You may want to unenroll your repository from the sync GitHub actions by filing a PR on DaSL_Course_Template_Bookdown
to delete your repo name from this file if this will continue to be the case.


Improve error handling while opening projects

Currently, we always print the message Failed to open project: unsupported engine version., even if the actual issue is different. UnsupportedEngineVersion struct ignores the root_cause field in Display implementation and is also used in places where it shouldn't.
The invalid error message makes the investigation of other issues much harder, and it should be prioritized.

Not relevant to GUI2.


ECR Gate Compatibility

Is your feature request related to a problem? Please describe.
Current code for interfacing with IBM devices is not compatible with the ECR gate. However, all but one of the available IBM devices uses the ECR gate.
Describe the solution you'd like
I believe we should refactor the IBM code to convert directly from pyGSTi circuits to Qiskit circuits, as this would smoothly integrate the ECR gate.
Describe alternatives you've considered
I've considered trying to convert ECR gates to OpenQASM 2.0 as we currently do. However, this leads to very fragile QASM code:
OPENQASM 2.0;
include "qelib1.inc";
gate rzx(param0) q0,q1 { h q1; cx q0,q1; rz(param0) q1; cx q0,q1; h q1; }
gate ecr q0,q1 { rzx(pi/4) q0,q1; x q0; rzx(-pi/4) q0,q1; }
qreg q[3];
creg c[1];
ecr q[1],q[2];
ecr q[0],q[2];
measure q[2] -> c[0];
barrier q[0],q[1],q[2];
This works for jobs submitted through Runtime or the Quantum Composer on the IBM website, but seems to fail for jobs submitted through Runtime:

I'm concerned that if we pursue this avenue that the fix would be unstable.

I'm popping in to note that I'd also find ECR compatibility helpful, as someone else working with IBM's devices currently.
I haven't thought about the best approach, but I'll note that if we decide to convert to Qiskit circuits we need to be careful to control how those circuits get transpiled by Qiskit before running (so that they don't get optimized/compiled in unintended ways).

This works for jobs submitted through Runtime or the Quantum Composer on the IBM website, but seems to fail for jobs submitted through Runtime:

Question for you coming from my position of relative ignorance on the IBM integration code: Any idea if this is an 'us' problem or a 'them' problem? I.e. is this a bug in our code, or something we should be reporting on one of IBM's repos?

@coreyostrove
I would say that it's an IBM/QASM suboptimality that is unlikely to be fixed and we are forced to accommodate. QASM does not directly allow a native ECR gate, i.e. writing
ecr q[0], q[1];
and having that compile to an ECR gate on qubits 0 and 1. IBM has attempted to work around this by defining its method for converting Qiskit circuits to QASM a macro:
gate rzx(param0) q0,q1 { h q1; cx q0,q1; rz(param0) q1; cx q0,q1; h q1; }
gate ecr q0,q1 { rzx(pi/4) q0,q1; x q0; rzx(-pi/4) q0,q1; }
We currently convert PyGSTi circuits to QASM to Qiskit circuits (to avoid more than minimal compilation). If we:

use this macro in the PyGSTi circuits to QASM code
convert QASM to Qiskit circuits
run via on IBM hardware using backend.run()

We get an error that the gate we implemented is not valid (I can't remember the exact error code--it's been a few months). If we run via pasting the QASM circuit into the IBM Quantum Composer it works. This shows how unstable the macro is (which also can be observed from the fact that none of the parameters or specifics defined in it matter). We talked to some folks from IBM about this at March Meeting and it doesn't seem to be a priority to fix.
PS: The second instance was a typo and has been corrected. It was intended to read backend.run().

@coreyostrove Using the Qiskit function to dump to QASM 2 from an ECR-containing circuit. There's no particular guidance available on how to interface QASM and ECR gates from IBM.

Got it, one last question for you in that case (apologies for the inundation): What happens when you instead use QASM 3?
Based on what you've described, it sounds like the following sequence of operations would result in an error:

Generate a Qiskit circuit containing an ECR gate directly (i.e. natively in Qiskit).
Run that circuit using backend.run() and confirm whether it works.
Dump that Qiskit circuit to QASM (with whether using QASM2 vs QASM3 matters still tbd)
Read that QASM back into a Qiskit circuit using either the from_qasm_str or from_qasm_file constructors.
Run that newly instantiated circuit using  backend.run() again.

If we find that step 2 succeeds while step 5 fails then this indeed sounds like it is an IBM problem (they should be able to handle the round trip in their serialization/deserialization, though I am empathetic to how tricky that is sometimes).
As for how we would work around this, I'm not sure. If the use of macros is the problem, then maybe we could inline it?

@coreyostrove I don't believe QASM 3 would fix the problem, but worth investigating.
I believe the sequence of operations would result in an error. I'll put running through that sequence for both QASM 2 and QASM 3 on my to-do list and get back to you in a couple days with the results and a test notebook.
The current thought for a workaround is to just convert pyGSTi circuits to Qiskit circuits without the QASM intermediary. The downsides are that that would take some time to implement and we would have to be very careful to avoid excessive transpilation as @jordanh6 pointed out above.

I'll also note that Qiskit 1.0 has QASM 3 (experimental) support. So an interface to Qiskit circuit directly could also give us QASM 3 support "for free", modulo all the issues that direct interface would have... I just bring it up since QASM 3 is something we've also been thinking about, and we'll probably only have time to implement QASM 3 or Qiskit and it would be nice if we got the other as a result.

Hmm. That's an interesting point. I'm currently a little worried that Qiskit 1.0 might torpedo QASM 2.0 support inadvertently as the qasm2 convertor seems to live in the unfortunate qiskit-terra package.

@coreyostrove I ran:

1-2 in your list above for QASM 2
1-5 in your list above for QASM 2
1-2 in your list above for QASM 3
1-5 in your list above for QASM 3
Modifying the convert_to_qasm method to add the macro/gate specification and then running an ECR-containing circuit through the usually pygsti.ibmq interface

All five of these circuits ran successfully. I believe something must have been patched since I last worked on this issue.

Huzzah! While it sucks when stuff is broken, it is always nice when we aren't the ones who need to fix it. Since you said you were able to successfully modify the convert_to_qasm method using the specified macros and that it appears to be working through the ibmq interface I suggest we move forward with that as our tentative fix for this problem. @sserita has a branch under active development called feature-svb-qol-updates that includes a bunch of IBM-related updates, so this would probably fit in well there (we have an open PR #379 which we're looking at getting merged into develop within the next few weeks). Or you could spin up a new branch with this change (forked off of develop) and we can make a separate PR just for this. Either way should be fine.

Any of those solutions work for me, just let me know what you and @sserita would like to do. It's about a four line fix. Add the macro in the convert_to_qasm function and then add the ECR gate in internal gates.

Completed with #457


Update specs2-core, specs2-matcher-extra, ... to 4.12.4

Updates

org.specs2:specs2-core
org.specs2:specs2-matcher-extra
org.specs2:specs2-mock

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

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

labels: library-update, semver-patch

Superseded by #141.


Import version directly from package.json

I like how you are pulling the value for the program name from package.json.  You can simplify it a bit more:
// current
const package = require("./package.json");
...
  .version(true, `dodo-SSG version: ${package.version}`)

// becomes
const { version } = require("./package.json");

Good point, I should have thought of it. Changed it now: a350599fe0eaf289534258aa684b62aaf573077a


AnnouncerTest sporadically fails in master in TravisCI

AnnouncerTest seems to be failing pretty regularly in TravisCI these days.
Specifically AnnouncerTest.testSessionKilled will often fail when checking the data in ZK

I looked into this a bit, and it might stem from assumptions of atomicity in the announcer. This was partially addressed in https://github.com/druid-io/druid/pull/1109 but not completely.
Curator does provide a org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode which accomplishes exactly what the announcer intends to accomplish, but has two major distinctions:

There is no atomicity (all tasks are background tasks)
There is no compression like is currently enforced in the Announcer.

The Announcer probably needs re-written using the mechanism in PersistentEphemeralNode or similar.
Additionally, any place which uses the announcer probably needs assumptions of atomicity removed.

this is duplicate of #2167

wouldn't 2167 be a duplicate of this one?

@drcrallen ok, let me rephrase, "this is duplicated by 2167" :)


API: Prepare Technical Documentation Requirements

Compare Package Documentation:

[ ] AutoAPI Documentation

Compare How-to-Guides:

[ ] Generating beautiful Python API documentation with Sphinx AutoAPI
[ ] Writing docstrings

Compare Docstring Styleguides:

[ ] Sphinx/Google

...best option for docstring style: numpy/pandas

Completed with https://github.com/brightway-lca/brightway-documentation/commit/8068cc01de32883c5d3ed88a012eab7f2b227c6a


Feature: Convert boilerplate into theme

TODO:

[x] Create gemspec file
[x] Test theme out
[ ] Allow easy way to create new config file
[ ] Write up installation and usage in README
[x] Submit RubyGems.org
[ ] Test if users of theme can customise files

Interesting tool for downloading specific subdirectories, could be ideal for downloading the demo content for the theme https://minhaskamal.github.io/DownGit/#/home

Link to download demo content https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/daviddarnes/alembic/tree/theme-gem/demo

Need to setup logo options. SVG and png options


Delete all controllers

There is need to delete all initialized controller at some point of app but it's tedious to delete controller manually by Get.delete<Controller>(); Need Something By which we can delete all the controller (No Matter for permnant also)
Thanks In Advance !

Get.reset();


Replace jsonwebtoken with jose

We received a report of this package failing with the following error:

TypeError: Right-hand side of 'instanceof' is not an object

The stack trace pointed at the jsonwebtoken package as the source.
At first it looked like this may be a problem on older versions of Node, but it turned out that they were using a relatively recent version (v18.17.1).
It appears that a lot of other people may be running into a similar issue:

https://github.com/auth0/node-jsonwebtoken/issues/939
https://github.com/auth0/node-jsonwebtoken/issues/892

People have reported success by either downgrading jsonwebtoken to v8 or replacing it with jose. Since we updated to jsonwebtoken v9 to fix a security vulnerability, I don't think it is a great idea to go back to v8.
jose seems to be well-supported, healthy, and active:
https://snyk.io/advisor/npm-package/jose
Let's give this a shot!
The API is a little bit different than jsonwebtoken, but for the most part I think the new version is simple enough to transition to. I set the alg properity to HS256, since it is required to specify the alg and that is what jsonwebtoken uses as the default.
It seems that jose uses ||= syntax which is not supported on node 14,
so I am also removing the node 14 tests as part of this commit. While I
was in there I figured I might as well get the tests running on node 20
and node 22.

Seems like a pragmatic approach even though it would be good to get to the bottom of why so many fail to run with jsonwebtoken@9 (I suspect polyfills for crypto).
Feel free to ditch node 14 from the matrix, and then release as a major release.

@trotzig I noticed that the tests failed on node 14 due to jose using some syntax that is not supported until node 16. To address this I decided to stop running the tests on node 14 (and added 20 and 22 while I was at it). What do you think about that?

Looks like node 20 and 22 tests aren't working out (https://github.com/happo/happo.io/actions/runs/9571942826/job/26390148668?pr=276), so I'll be looking to add those to the test matrix in a follow up. I think one of the error messages we are asserting against is a little different for some reason.

It looks like we just have to update the assertion?


running into syntax errors, when running a list of commands

Hello,
Recently I installed gazer on a debian8 VM. In general it is working fine. However there is a bunch of commands which produce syntax errors. I am curious, where this comes from and if it's specific problem with our setup or if something changed with looker version 5.24potentially. Maybe someone can replicate this.
I get the syntax error for these commands, it is always about an unexpected '.'
gzr plan ls
gzr user ls
gzr connection ls

This is what the error looks like:
gzr plan ls --host=my.looker.tls
/var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:61:in `eval': (eval):1: syntax error, unexpected '.' (SyntaxError)
row.user&.id
          ^
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:61:in `block (3 levels) in execute'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:60:in `collect'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:60:in `block (2 levels) in execute'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:59:in `map'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:59:in `block in execute'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/modules/session.rb:163:in `with_session'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan/ls.rb:19:in `execute'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/lib/gzr/commands/plan.rb:123:in `ls'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor/invocation.rb:115:in `invoke'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor.rb:238:in `block in subcommand'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        from /var/lib/gems/2.1.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
        from /var/lib/gems/2.1.0/gems/gazer-0.2.6/exe/gzr:14:in `<top (required)>'
        from /usr/local/bin/gzr:23:in `load'
        from /usr/local/bin/gzr:23:in `<main>

All the other commands I've been testing, have been working fine.
Could somebody potentially give me any insight on why this is happening?
Thanks!

What version of Ruby are you using. The &. operator is introduced in Ruby 2.3.

That actually was the problem! I was running Ruby 2.1.
After upgrading to 2.5 and reinstalling the gem, it works like a charm.
Thank you very much!

I added a line to the file gzr.gemspec so that the requirement for Ruby 2.3 is enforced.


IA-2425 List Org Unit Change Requests (for mobile)

List Org Unit Change Requests for mobile.
Related JIRA tickets:

IA-2425
IA-2229 (Epic)

Self proofreading checklist

[x] Did I use eslint and black formatters
[x] Is my code clear enough and well documented
[x] New translations have been added or updated if new strings have been introduced in the frontend
[x] My migrations file are included
[x] Are there enough tests
[x] Documentation has been included (for new feature)

Changes
Implement GET /api/mobile/orgunits/changes/ for mobile:

new API endoint /api/mobile/orgunits/changes/  (list only)
implement ACL
implement permissions

CustomPermissionSupport.ORG_UNITS_CHANGE_REQUEST
CustomPermissionSupport.ORG_UNITS_CHANGE_REQUEST_APPROVE

How to test

Create OrgUnitChangeRequest objects in admin:

http://localhost:8081/admin/iaso/orgunitchangerequest/
Follow requirements of OrgUnitQuerySet.filter_for_user_and_app_id for ACL compliance

Test API with DRF UI:

List:

http://localhost:8081/api/mobile/orgunits/changes/?app_id=foo.bar.baz

Filters:

http://localhost:8081/api/mobile/orgunits/changes/?app_id=foo.bar.baz&last_sync=2023-09-26T17:21:22.921692Z

I only have one comment, in fact: I'm under the impression that only the labels of the groups are output, and I fear that using only that and not the ids, will lead to issues.


Could not find module 'tdjson.dll'

FileNotFoundError: Could not find module 'tdjson.dll' (or one of its dependencies). Try using the full path with constructor syntax.
I've already built TDlib. How can I solve this problem?

You didn't placed built library in the folder where your program can find it. Try to place it in the folder, from which the script is run. Also don't forget to copy all other dependent DLLs to the same folder.

You didn't placed built library in the folder where your program can find it. Try to place it in the folder, from which the script is run. Also don't forget to copy all other dependent DLLs to the same folder.

I also can't find any .dll files in the library.

Are you sure that you built TDLib? Have you used the build instruction from https://tdlib.github.io/td/build.html?

Are you sure that you built TDLib? Have you used the build instruction from https://tdlib.github.io/td/build.html?

Yes, but I had some messages about missing English in VS while building. Is it possible that I installed the library incompletely?

The last command in the build instructions shows you the built library. If you see nothing, then you didn't build it. Show all console output of build commands, so I can tell you, what went wrong.

The last command in the build instructions shows you the built library. If you see nothing, then you didn't build it. Show all console output of build commands, so I can tell you, what went wrong.

TDLib was not fully installed due to errors during the installation of openssl and zlib. This was caused by the lack of English in Visual Studio. Now I have tdjson.dll file, but my Python program can't find this file even if I place it in the program's folder.

You need to also copy all dependent DLLs from td/tdlib directory, i.e. OpenSSL and zlib DLLs.

You need to also copy all dependent DLLs from td/tdlib directory, i.e. OpenSSL and zlib DLLs.

So I have only tdjson.dll in td/tdlib.

Нщг can find OpenSSL and zlib DLLs are in vcpkg folder. They should be named like
zlib1.dll
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll

You need to choose the correct one based on the target architecture and Debug/Release build.

Нщг can find OpenSSL and zlib DLLs are in vcpkg folder. They should be named like
zlib1.dll
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll

You need to choose the correct one based on the target architecture and Debug/Release build.

Thank you for your help! I solved this by using all these files and os,path:
path = os.path.dirname(os.path.realpath((__file__))) tdjson = CDLL(os.path.join(path, 'tdjson.dll'))


Add New tab with week/month step data using SwiftCharts

Create new tab on the TabView

Hey @brittanyarima , I want to work on this.

@WasifRaza123, Great! You got it!

Key @brittanyarima , I have some questions regarding the TabView.

Will this be a new tab in the tab bar?
Are there any reference for the UI design or is it complete based on my personal vision?

@WasifRaza123 Yes, this should be a new tab in the tab bar with a reasonable icon and name
I absolutely love what SwiftUI charts is capable of & just think utilizing them could be really cool!
some examples: https://github.com/jordibruin/Swift-Charts-Examples/tree/main
The app is using mostly native swiftUI design things, so I say stay in that realm but I'm good with whatever UI ideas you have! Just mainly getting at least one chart built using their weekly step data. Even with mock data to start and I can update it with the real HealthKit data.

Hope that makes sense! Feel free to ask any questions if not!

Hey @brittanyarima , I have created a basic Week chart.
How to improve this like what else I can add or edit?

Wow! That looks great!!
If you wanted to fill up the screen a bit more, you could add a list or something below with some fun facts like "Number of times: Reached goal this week - with the number next to it. & Highest number of steps - with the number.
Honestly this looks great tho! If you want to stop here, that's fine too & I can make another issue to have someone fill up the screen. If you want to keep working on it, that's great too!
One thing I'd say is maybe to move the Steps tab to the left of Settings? So the Settings Tab is on the far right.

I have completed this @brittanyarima .
I am also working on some other tasks due to which I was unable to properly design a view for the empty space below the weekly chart.
Pr Link:  https://github.com/brittanyarima/Steps/pull/40

@WasifRaza123 this is great! This is so incredibly helpful for getting this tab started. Thanks so much for contributing!


Suggestion: Improve Exception Message for Unable to resolve service for type 'MediatR.Mediator'

I would like to propose a PR that would improve the message in the exception for Unable to resolve service for type 'MediatR.Mediator'. This is an exception that is called not only when the service registration isn't completed, but also if someone tries to inject Mediator instead of IMediator.
I propose that the message include the suggestion includes to check the type that is being injected through DI where the exception is thrown.

That's not an exception that MediatR throws though. I think that's the MS DI package?

Good point...which isn't really a good place to clarify that particular problem.


Add cargo features for http1 and http2

It's likely some people only need to support certain protocol versions, and it would be nice if they could reduce the amount of code they have to depend on or compile if they don't need all of them. It likely makes sense to add http1 and http2 Cargo features, and the relevant code using those cfgs.

[x] http1
[x] http2

This would be very useful. I'm working on a REST API for a small embedded device where the amount of flash memory is very limited. According to cargo bloat, the HTTP 2 protocol alone is responsible for a lot of code.

As I wrap up adding http1, the question now arises: what should happen if you don't have any HTTP version enabled?

compile_error!: This could be the choice to start, since it's not a breaking change to eventually remove the compile error. However, if we have all features disabled by default, it could be jarring to see the build fail as soon as you add hyper and didn't configure any features...
An empty crate: it doesn't break, but it's otherwise not really useful...
A shell: Include the re-exports from http, body, and error. This could allow someone to build support crates using just the core types, without having to enable a specific protocol version.

As I wrap up adding http1, the question now arises: what should happen if you don't have any HTTP version enabled?

My gut feeling is that the "shell crate" option is the best option.

I think it would make sense to provide full crate but without functionality to actually construct clients or servers. However, methods like Client::request could stay (you cannot create an instance of Client anyway).

Both http1 and http2 features are merged! I'll file a separate issue about making them all default off.


Updated appExecutionAlias sample

The current appExecutionAlias example isn't correct. The extension should be declared in the path Package -> Applications -> Application -> Extensions and not just in the Package root.

@hickeys  : The PR passed the acceptance checklist. Please evaluate further and approve/complete the PR if appropriate. Thanks!


enhancement: A secondary modal/popup to confirm entering/leaving a room.

added a confirmation modal when joining a room to prevent users from accidentally joining a room. I think this can also be refined more by making the modal give more details of the room the user is about to join. If that is something people think is useful I would be more than happy to implement. I am new to open source and I couldn't figure out how to get my formatter to not reformat the entire Home component. I only added about 6 lines of code give or take. Please leave any feedback or any dos/ do nots .

do this on the staging branch, this formatting should be fixed there. I only want a confirm if you are currently in a room and switch to another one (idk if you are already doing this, I haven't looked at the code yet)


add mod to Tensor

tests passed by splitting the kernel with contiguous 🤔
I guess some rewrite is rewriting this part r + b * (((r < 0) & (b > 0)) | ((r > 0) & (b < 0))) away
gonna stare at this a bit more and maybe practice my VIZ skillz...

possibily can be cleaner with a floor div

something like this without the new class Mod(Function):?
def mod(self, x:Union[Tensor, ConstType], reverse=False) -> Tensor:
  a, b = self._broadcasted(x, reverse)
  return a - b * (a/b).floor().cast(self.dtype)

or by fixing def __floordiv__(self, x): return self.idiv(x)  # TODO: idiv is trunc div, not floordiv?

disabling this rule makes it pass without contiguous
(UPat(GroupOp.ALU, name="x"), lambda x: x.const_like(x.vmin) if x.vmin == x.vmax else None), here

see #8458, should unblock you and thanks for root causing the issue!


[PR] Cleanup duplicated error handling #1966

The 3386181 cleans up duplicate error handling as requested in #1996.
In the next commits I tried to do some cleaning in the catch-blocks themselves.
But I found a way too many catch-patterns :-(
(catch :default e
  (js/lt.objs.console.error e))

(catch :default e
  (console/error (str "Invalid settings file: " file "\n" e)))

(catch :default e
  (.error js/console e))

(catch :default e
  e)

(catch :default e
  (object/raise files-obj :files.open.error path e)
  (when cb (cb nil e)))

(catch :default e
  (when cb (cb nil)) nil)

(catch :default e
  (object/raise files-obj :files.save.error path e)
  (when cb (cb e)))

(catch :default e
  (object/raise files-obj :files.open.error path)
  nil)

(catch :default e
  (object/raise clients/clients :message [cb :editor.eval.cljs.exception {:ex e :meta (:meta res)}]))

(catch :default e
  (.error js/console (str "Error loading JS file: " path " : " e))
  (.error js/console (.-stack e)))

(catch :default e
  (console/error (str "Could not load behaviors for plugin: " (:name plug)))
  {})

(catch :default e
  (.log js/console "Error starting socket.io server" e))

(catch :default e
  (println e))

(catch :default e
  (safe-report-error (str "Invalid behavior: " (-> (->behavior r) :name)))
  (safe-report-error e))

It would be fine to have some try-catch guidelines so I could clean up these things too.

@Bost Thanks for knocking out #1966! I agree there are a lot of try-catch patterns and I'll see if I can't merge some of them when reviewing this. For now, I'm putting this on hold until we get a release out

@cldwalker please consider merging/rejecting this PR somewhat sooner. At least partially. My last 2 PRs were merged/rejected after more than 1 year(!). Unfortunately, anything later than 1 month falls out of my motivation span... and that's the reason why I didn't send you any other PRs. Sorry about that.

@Bost We're working on the next release now, so you shouldn't have to wait long this time. Thanks for the PR by-the-way.

@Bost Thanks for your work on this! I merged in all your commits except the last one. I did consolidate the varied ways of handling catch to use console/error where possible and started a code convention section for future maintainers. If you're interested in helping out more, refactor issues or beginner issues that don't have an assignee would be much appreciated


Rule for enforcing use of a common set of Helper Utils

On Roku a lot of projects make use of custom Helper methods to validate and set data. For example:
function isBoolean(obj as dynamic) as boolean
	return obj <> invalid and GetInterface(obj, "ifBoolean") <> invalid
end function

These are used to enforce safety (prevent Channel crashes), for readability and for less typing of code.
If would be good to define a list of Helper methods for that project, that should be used in place of the Roku native checking. For example:
Use: getCount(NODE) or getCount(AA)
Replaces: NODE.getChildCount() and AA.count() and ARRAY.count()
This rule would also need to define a single file and/or list of exceptions (for Task Node loops etc.) that are exempt from using the Helper Util methods.

How would you envision detecting spots where these helpers should have been used? Would you look for any place where a GetInterface(whateverVar, "ifBOolean") is used and then warn about needing to use a helper instead? Or does the line also need to include an invalid check before you show the warning?
How would you let the user define the name of a helper function in the bsconfig? I'm guessing you'd need to carve out specific primitive types in bslint because each type might have slightly different type checking syntax that would require specific logic in bslint to detect. Something like this?
bsconfig.json
{
    "helperFuncs": {
        "enabled": true,
       "names": {
            "boolean": "isBoolean",
            "float": "isFloat"
            ...
        }
}