Is it feasible to use tree-sitter as source of the information?

Would it be possible to extract the account names, tags, etc from the tree-sitter information? It'd make the overall setup simpler, as there would be no need for either beancount or the neovim python client.

It's possible but would you mind showing why we have to abandon beancount? I think this plugin is designed for beancount user, I don't think it's an extra software in this case.

This is purely from my own point of view of convenience :) My beancount file is synced to a bunch of hosts, and the whole beancount environment clocks easily half a gigabyte (with smart_importer pulling in numpy and scikit). Plus making sure nvim is using the right virtualenv. I just felt like the same information that's fetched via the beancount api is already in the editor, in a form of ts tree.
 Plus making sure nvim is using the right virtualenv. I just felt like the same information that's fetched via the beancount api is already in the editor, in a form of ts tree.
So no compelling arguments there, purely my own convenience :)

Thanks for your advice. I think the tree-sitter approach sounds difficult to implement properly. I think it will be problem to actually get all the accounts, because tree-sitter within neovim requires an open account.bean. Completing accounts only within the same file or open file sounds okay.
A Language Server approach may be the best, if it is not implemented by Python :)


dockerize

Can you update the instructions so that they show how to run this in a container instead?
Basically I think they should follow the refgenieserver README pattern

@nsheff Ok - I think this would be one way to do it, that I came up with. Let me know what you think.

Just added the instructions on how to run everything, sorry for multiple commits on an issue branch, I made a mistake in the original commit and then reverted only to realize I made a mistake reverting. Sigh.

From the discussion in #9 I infer that the Docker setup works. Hence, I am closing this issue.


Code Review - Code

https://github.com/lisaoude/browser-technologies-2021/blob/203cb83bf7e0fc46e41def51c99e070bef27d5ec/public/index.html#L21
Have a look at HTML5 semantics, there is of course just the header tag. 😄

Thanks for telling me I can use multiple headers on one page, I thought that wasn't semantic! Fixed now 😄


Rework opal headers to eventually match Linux

Can one of the admins verify this patch?

v2 pushed and sent to the list.

(merged from list, closing)


Add support for Swift 5.5 and async/await

Updated swift-tools-version to 5.5 and added async/await support to the project.
Removed EventLoopFuture tests as they are redundant when using async/await.

@ptoffy can you merge in the latest changes from main - that should trigger CI

@0xTim I think the tests are failing because the installed version of swift on CI is 5.2

@ptoffy yeah, now the CI is in your fork you should be able to change swift:5.2-xenial to swift:5.5 etc

@0xTim have you had any time to review this?


Fix a serialization error on publish

In TOML we have to emit all keys before we emit all sub-tables, so to handle
that for dependencies just transform everything to an elaborated version.
Closes #4081

r? @matklad

r? @brson
(rust_highfive has picked a reviewer for you, use r? to override)

bors r+
@alexcrichton You've said you've run the original code in the rewriting PR on tons of crates. If you have an infra for that left somewhere, it might be useful to do the same again, with the new implementation.

CI failure seems legit.

@bors r-

@matklad yeah unfortunately I didn't re-run it with the most recent version, but I should try to do so again!
@bors: r=matklad

:pushpin: Commit d1e70e4 has been approved by matklad

:hourglass: Testing commit d1e70e4 with merge 9fcdbb4...

:sunny: Test successful - status-appveyor, status-travis
Approved by: matklad
Pushing 9fcdbb44fec18d10c086b6aba8143bc06a199761 to master...


Updated useDrag's preventScroll to take in a time duration for the delay and added preventScrollAxis argument

Hi, this is the updated version of my previous PR, as the branch got a little bugged out so I had to redo it.
I've updated the preventScroll argument for the useDrag handler to accept a duration in ms to act as the "long press" before dragging is initiated. If set to true, this defaults to 250ms.
I've also added a preventScrollAxis argument for useDrag, which accepts 'x' | 'y' | 'xy' and defaults to 'y'. This argument will make it such that it allows for scrolling in the direction of the defined axis, but when the "long press" duration has elapsed, the scrolling will be blocked. In the other axis, there is no delay before dragging is triggered, which is the expected behavior. Depending on the nesting of the drag element, touch-action: pan-x or touch-action: pan-y, or both, may need to be assigned to the element.
I will note however that the wording of preventScrollAxis can be a little misleading because it can imply that scrolling in the defined direction is prevented when in fact it is allowed until after the "long press" duration has elapsed. But in essence what this means is that scrolling over the element is allowed along the preventScrollAxis until after the preventScroll duration has elapsed, after which scrolling is prevented.
All tests and type checks have passed, and documentation has been updated to reflect the changes.
Thanks!

Perfect, thanks @ajaypillay! I'm going to merge this, but I'm open to changing the config option name preventScroll, what would you suggest instead? I'm really bad at naming stuff.

@dbismut Thanks!
With regards to naming, it's quite tricky in this case. I thought of this as well while doing it up but I couldn't think of what's the most succinct way to name this.
When you attach the useDrag hook, the element blocks scrolling.
So would it be better to name this allowScroll and allowScrollAxis instead?
But the explanation in the docs should include why they're named that way. Then I think it'll be appropriate.
Elements with the useDrag hook will block scrolling the moment they're interacted with. allowScroll would mean that if on a mobile device the user intends to scroll, the element won't be dragged until after the default delay, essentially working like a "long press". allowScrollAxis defines which scroll axis you would like to allow scrolling until after the long press.
I think this explanation could work, but it may still need to be made clearer.


Improvements to GA test

Fixes #50

Is this still relevant? Thinks have moved on alot since the linked ticket.

This is also going to fix https://github.com/hubmapconsortium/ccf-validation-tools/issues/61

Can this PR be merged? If not, can you please archive it?


Point to the tls-certificates-interface library V4

We recommend using the tls-certificates-interface library, specifically version 4 (v4), which has just been released, for implementing this interface.

@gruyaume Please take a look.

@gruyaume Please take a look.

Honestly I would remove the "developers are free to ...". Having devs writing their own tls lib is strongly discouraged.


Support 2nd choice of topology, for very huge number of service

Ref to this https://ecomfe.github.io/echarts-examples/public/editor.html?c=graph-circular-layout
We could have service list, and filter service. Also, when click a service, highlight the related service and traffic among them.
Notice, only another choice for topology, not replace the current.

In the situation where there are a huge number of services, the topology page is really slow, we've been suffering this problem

Yes. 3d is very cool but requires a lot of GPU resources, that is why I propose this. 🙃

@TinyAllen Could you try this in this release?


Generic deriving

It should be quite ready now.

Looks great! Three minor nitpicks:

Can you squash commits?
The to / from list will incur a performance overhead, if you can directly fold over the map structure (at least for serializing to JSON), that will be faster.
It would be nice to bulk up the test data structure a bit to make the property tests more conclusive.

:+1: Thanks for your work on this!

@jdegoes Nitpicks are welcome.

I'll squash everything after we review these last bits
See 60b2e29 and 57b2d72, not sure if that's the best what we can do without giving up safety but it already looks much better.
I can move data declarations a bit closer to the printing part, or to move printing part into a separate function and put it close to data declaration, is that what you meant?

(1) and (2) look fine. For (3), I meant, create a more complex data structure to exercise all the types exposed in Generic.

@jdegoes Makes sense. Fixed.

:+1: Awesome work! Can you squash commits one more time and I'll merge in?

Upps. Broke it with rebase, fixing now.

Ready to be merged now

:+1: Thanks again!

@jdegoes Thanks for the review


2.0.33 is latest version using apt repository

Following the directions for Ubuntu here: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest
And I cannot update azure-cli beyond 2.0.33 (2.0.33-1-xenial specifically)
Why is it stuck at this version?

Did you run apt-get update? We have Xenial packages available for all CLI versions.

Yes
On Tue, Dec 11, 2018, 4:06 PM Travis Prescott<EMAIL_ADDRESS>wrote:

Did you run apt-get update? We have Xenial packages available for all CLI
versions.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-cli/issues/8039#issuecomment-446361624,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABlGHSX2WZCa-bybZvppJd_YPPHSdO8vks5u4B48gaJpZM4ZOLYn
.

So, for some reason the repository was removed even though I ran the command to add the repository multiple times and that was how it was installed in the first place. I think it might be an issue with "apt" vs "apt-get" in any case it works now.


Projects Page

I think this page should be a gallery of projects. Maybe cards for each project? Images or screen shots would be nice.

this is good enough for launch. we could tweek the layout to display these more inline instead of stacked, especially for desktop. kind of in line with vickie's comment on #61. more work to be done on #47 to provide more screenshots.


22b7a31 break build when directory and file in it are passed

In previous version our workflow of invoking go-bindata on output of find /path worked fine, however 3.5.0 has a regression causing invalid output file being generated.
Given dir structure
$ tree foo
foo
└── bar

0 directories, 1 file

$ go-bindata -verbose $(find foo)
+ foo/bar
+ foo/bar
> bindata.go

+   $ go build -o f .
# foo
./bindata.go:112:5: _bindataFooBar redeclared in this block
        previous declaration at ./bindata.go:82:5
./bindata.go:114:6: bindataFooBarBytes redeclared in this block
        previous declaration at ./bindata.go:84:36
./bindata.go:123:6: bindataFooBar redeclared in this block
        previous declaration at ./bindata.go:93:31
./bindata.go:207:2: duplicate key "foo/bar" in map literal
        previous key at ./bindata.go:206:2

@graywolf-at-work
Thanks for the report. I have try to fix this on the master branch. Can you test it again? Thank you.

Thank you for the quick fix! I does work for my specific usecase (passing output of find .), but in general it still does not de-duplicate input files, as in:
/xx # tree foo
foo
├── bar
└── foo

0 directories, 2 files
/xx # /root/go/bin/go-bindata -verbose foo/foo foo/foo
+ foo/foo
+ foo/foo
> bindata.go
/xx # go build -o q .
# foo
./bindata.go:112:5: _bindataFooFoo redeclared in this block
        previous declaration at ./bindata.go:82:5
./bindata.go:114:6: bindataFooFooBytes redeclared in this block
        previous declaration at ./bindata.go:84:36
./bindata.go:123:6: bindataFooFoo redeclared in this block
        previous declaration at ./bindata.go:93:31
./bindata.go:207:2: duplicate key "foo/foo" in map literal

Is there any reason no to just deduplicate the input files? Should I make a new issue about this (since my specific one was resolved)?

@graywolf-at-work
Glad that it work now.
I think that would be another issue. Can you open new issue? Thank you.

@graywolf-at-work Glad that it work now. Can you open new issue for de-duplication? Thank you.


feat(litecoin): add litecoin support

Description:
Misc fixes and adjustments to get things working with litecoin nodes.

ensure wallet info saves correctly
support litecoin currency conversions
remove bitcoin specific language
patch bolt11 to support litecoin
link to chain specific block explorers

Motivation and Context:
Support litecoin
How Has This Been Tested?
Manually - connect to a remote litecoin node and use the wallet
Types of changes:
Adjustments
Checklist:

[x] My code follows the code style of this project.
[x] I have reviewed and updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes where needed.
[ ] All new and existing tests passed.
[x] My commits have been squashed into a concise set of changes.

tACK - however we'd prefer if the photons denomination is replaced by lites (ł). In Litecoin Core and various other wallets, by default we've also been using lites for a while now, and it would be preferred if Zap had consistency with these other wallets.
Code otherwise looks perfect! 👍

Tested ACK 3e826f2
@losh11 would you mind creating an issue for the lites request? I feel it is a bit out of scope for this PR as we first want some stable LTC functionality in place. Will follow up with a separate PR for the lites request


Update Ubuntu build instructions (fixes #24)

Hi, as discussed in issue #24, I've updated the build instructions for Ubuntu. The pull request slightly differs from my suggestion in #24, because I realized that Ubuntu 16.04 ships CMake 3.x in the cmake package instead of the cmake3 package, and because the suggested test for installations with GPU support (caffe2/python/operator_test/activation_ops_test.py) requires hypothesis to run.

Thank you!


updated simulation.loom files to match latest loom version

I replaced the simulation files in tests/data and also updated the simulation.loom files in the scVI-data repository
Set the latest version of loompy in both the setup requirements and in requirements.txt
closes #211

Codecov Report

Merging #216 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #216   +/-   ##
=======================================
  Coverage   92.45%   92.45%
=======================================
  Files          30       30
  Lines        2265     2265
=======================================
  Hits         2094     2094
  Misses        171      171

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 b41c8df...cd751a4. Read the comment docs.


Creating a batching write function

In order to reduce the number of calls to Event Hubs, adding a batch_write function to allow multiple records to be sent in the same message, with a variable batch size setting.
Also allowing folks to opt out of the printing of each record.

@toddysm Any chance you could take a look at this?  These changes should be invisible to current users, but support batching for folks who want that.

Or @htgc any chance you can take a look?

@hatfarm Is there any documentation on how to use this new functionality?


Pull request with type [CREATE] for user [Mhudson97] and object type [Script] - titled [Detect Restart]

Automated pull request from the Configuration Manager community hub.

the UI Froze while sending this in. Here is the description in case it didn't submit. This script will determine if the machine is pending a ConfigMgr reboot and return the client local and UTC of the pending Reboot.

I have manually updated the description of your contribution with the text you requested. Thank you for bringing this to our attention.  We will attempt to determine the reason the description was omitted when you submitted the contribution.


refreshVersions removes newline at EOF in gradle.properties

Checklist

[x] I verified that the task ./gradlew :dependencyUpdates works correctly. If that's not the case, it's better to submit a bug-report to https://github.com/ben-manes/gradle-versions-plugin
[x] I tried to reproduce the bug within sample-groovy, sample-kotlin or sample-versionsOnlyMode
[x] I have run with $ ./gradlew --scan buildSrcVersions or $./gradlew --scan refreshVersions to provide a Build Scan URL

Describe the bug
If the gradle.properties file has a newline between the EOF and the last version property, running ./gradlew refreshVersions removes the newline.
To Reproduce
Add a newline to the end of gradle.properties just after the version properties, and then run ./gradlew refreshVersions.
Expected behavior
The newline should remain at the end of the file.

thanks, indeed I noted this as well and it needs to be fixed

The issue will be moot in a future release because instead of hacking together gradle.properties, I use a proper separate file: versions.properties


feat: add peggy to e2e test suite

Description
Integrate peggy into our e2e test suite.
closes: #199

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Codecov Report

Merging #203 (0f0397e) into main (ac48856) will decrease coverage by 0.12%.
The diff coverage is 1.37%.

@@            Coverage Diff             @@
##             main     #203      +/-   ##
==========================================
- Coverage   23.10%   22.97%   -0.13%
==========================================
  Files          47       47
  Lines        7320     7360      +40
==========================================
  Hits         1691     1691
- Misses       5492     5532      +40
  Partials      137      137

Impacted Files
Coverage Δ

x/peggy/keeper/attestation_handler.go
3.87% <0.00%> (ø)

x/peggy/types/query.pb.gw.go
0.00% <0.00%> (ø)

x/peggy/keeper/batch.go
64.03% <100.00%> (ø)

x/oracle/types/keys.go
0.00% <0.00%> (ø)


Does Not Work with #NewTwitter

Doesn't work with NewTwitter.

it does not. AFAIK twitter provides decent tab completion with newtwitter so i didn't see a point in porting this.
thanks.


firmware: notes can persist in the middle of a poly/mono mode change

Fixed by setting note clear function to -1


Switch to white theme - (First experience with Ghost)

Hi!
I really love this theme and It's one of the coolest themes I've seen. I really appreciate your work.
I have read closed issues but I couldn't solve the problem. Later I checked for my device's theme and it selected as Light theme. After that, I tried by editing the app.css but it's so difficult to find tags. What should I do? Also, Could I get csstag names for the shadow of article-cards on the main page?
Thank you!

Oh, It's only happening when I use Brave browser. And still I have a problem. How does this dark theme work?
Thank you!

Currently the dark theme is shown when devices that support @media (prefers-color-scheme: dark) have the dark-mode enabled. If the device doesn't support that or if you have the dark mode turned off then the light theme is shown.
More info about this here: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
But I don't understand yet what do you need exactly, do you want to disable the dark theme for your blog and just show the light theme? If you want to do that then please take a look on this:
https://twitter.com/_edev/status/1190724632556556288

After reading this: https://github.com/eddiesigner/liebling/issues/68
I thought the dark theme depends on OS's default theme. I worried because of the Liebling theme was still black even though my default theme was light. After I found that my browser's theme selected as dark. Now I got it. (I think in the dark theme we can't see even shadows. can we?) That's why I tried to force light mode.
Thank you for your co-operation! =)
after referring to this: https://github.com/eddiesigner/liebling/issues/62, I tried with my own colours...
:root {
 --background-color: #243239;
 --primary-foreground-color: #ECEFF1;
 --secondary-foreground-color: #fff;
 --primary-subtle-color: #64FFDA;
 --secondary-subtle-color: #2A383F;
 --titles-color: #ECEFF1;
 --link-color: #64FFDA;
 --primary-border-color: #2A383F;
 --secondary-border-color: #243239;
 --article-shadow-normal: 0 0px 0px 30px rgba(0,0,0,0.5);
 --article-shadow-hover: 0 0px 0px 60px rgba(0,0,0,0.9);
 --transparent-background-color: rgba(27,38,43,1);
 --foter-background-color: #1f2a30
 --submenu-shadow-color-opacity: 0.55;
 --button-shadow-color-normal: rgba(10, 10, 10, 0.5);
 --button-shadow-color-hover: rgba(10, 10, 10, 0.5);
}

And I removed the secondary border of article-cards:
border:1px solid var(--secondary-border-color);
Not too darker, not too brighter. isn't it? :3
Few screenshots:


Invite links: all group admins should be able to approve group join requests

This should reduce the join failure rate (and is how Signal works).

@saulmc So there are 2 ways an admin approves a joins request

automatically through a silent notification
manually through the UI

I guess if you're talking of join failure rate you're mainly referring to the first one?
However isn't there a privacy issue?
Right now:

an admin creates an invite link
to be notified, he tells our backend, and our backend will send him a background notification

But with that task, our backend needs to know for each group admin how to send them a notification. So our backend will know the list of admins for the group. Basically, if any admin creates an invite link, he will expose the full list of admins to our backend.
Not yet sure about how technically we would do that but still want to know if that's ok

Yep, the silent notification path is still failing pretty often, which this redundancy would help to reduce. But we don't want full lists of group admins on the backend. @alexrisch did you have a different way in mind?


fix: Unable to delete scene from IPad Pro

Trying to delete a scene, the only observable effect tapping on "delete" button  (from safari or chrome)  is that the modal disappear without deleting the scene.

Oh, you're right. Looking into it!
Btw, for an (often) speedier help, check out the Discord/email support channels you can find in the the user avatar dropdown:


deployer: made the resource manager call the resource recorder

Description of change
Made the deployer resource manager call into the resource recorder.
This is based on #1095 .
How has this been tested? (if applicable)
TODO: test on unstable

Closing this in favour of #1101 .


Fix Thread-safety in julia code

When the harmonics were evaluated in a multi-threaded code this led to different threads writing to the same temporary arrays. This PR fixes that. It simply requires replacing the object pool with a thread-safe version.

I'm confused why the PR thinks there are more than 3 commits to merge. I'll have to figure out what happened. If anybody can suggest what I did wrong, I'd be grateful.

I better close this, create a new fork, rebase the changes, and make a new PR. sorry for the noise.


pytr dl_docs shows new documents but does not download them

Description of the bug
Starting this week (June 10th 2024) new documents are not downloaded autmatically by "pytr dl_docs". Till last friday (June 7th 2024)
it worked without any issues.
To get more information I tried "pytr dl_docs -v debug" and I see that for the new messages the response from the server seems to look different. Before it looked like this:

Now the only response that there is is:

Can anybody reproduce the issue. Do you have any idea where this comes from?
I do not see what I do different then before. Did something change in the API?
The issue ini the end is that the new files are not being downloaded.
Environment

OS: [Windows 10]
pytr version: [e.g. 0.1.9,

i got the following error since yesterday (pytr 0.1.9 on macOS 14.5)
pytr -v debug dl_docs ./docs
...
2024-06-11 13:35:53+0200 api       INFO     Connected to websocket ...
2024-06-11 13:35:53+0200 api       DEBUG    Subscribing: 'sub 1 {"type": "timeline", "after": null}'
2024-06-11 13:35:53+0200 api       DEBUG    Received message: '1 E {"errors":[{"errorCode":"UNKNOWN_ERROR","errorField":null,"errorMessage":"Unknown error","meta":{"source":"PLATFORM"}}]}'
2024-06-11 13:35:53+0200 api       ERROR    Received error message: '1 E {"errors":[{"errorCode":"UNKNOWN_ERROR","errorField":null,"errorMessage":"Unknown error","meta":{"source":"PLATFORM"}}]}'
2024-06-11 13:35:53+0200 api       DEBUG    Unsubscribing: 1
2024-06-11 13:35:53+0200 dl        CRITICAL ('1', {'type': 'timeline', 'after': None}, {'errors': [{'errorCode': 'UNKNOWN_ERROR', 'errorField': None, 'errorMessage': 'Unknown error', 'meta': {'source': 'PLATFORM'}}]})
Traceback (most recent call last):
  File "/Users/tcdev0/.local/bin/pytr", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/tcdev0/.local/pipx/venvs/pytr/lib/python3.12/site-packages/pytr/main.py", line 208, in main
    asyncio.get_event_loop().run_until_complete(dl.dl_loop())
  File<EMAIL_ADDRESS>line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/Users/tcdev0/.local/pipx/venvs/pytr/lib/python3.12/site-packages/pytr/dl.py", line 77, in dl_loop
    if subscription['type'] == 'timeline':
       ^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'subscription' where it is not associated with a value

Hi,
I can confirm, that no documents are downloaded since monday. Last DL was 8th june 2024. I just checked the file date. (Did not use it on the 9th although.)
thanks
Juergen

TR changed something... hope someone fixes pytr soon, love this tool :)

Hi,
I have another program called "FinFUX" (a browser Extension). There it is the same. This program can download "Rechnungen" but not the "Abrechnungen" (in Abrechnungen there seem to be the final invoicing) any more since 10th june. SO IMHO defintely TR changed something.
thanks
Juergen

Hi,
I also have that issue that pdfs are not downloaded for
pytr -v debug  dl_docs --last_days 22 docs
I see some entries like
08:46:22 xx/yy: American Tower -- Sparplan
but no pdfs.
However, if I also checked my stock saving plans (Sparplan) in TR app (iOS) and can't find any recent "Abrechnung Ausführung" document in those plans for this month. Only for last month (and before). My assumption would be that those are not yet available, might be related to current technical issues/problems of TR :man_shrugging:

Hi @matawed ,
the "Abrechungen" do exist in the TR webinterface. (at least here in my system), but still pytr does not download them.
The ones before 8th june can be DL by pytr, the ones since 10. june cannot be DL by pytr. In the TR web everything is there (manual work, we should invoice TR :-) )
thanks
Juergen

I had a look at the pytr-code (without really understanding all the details)
What I found is that the "recv()-function" of the TR-API does not provide all the "sections" anymore.
Before June 10th it looked liked this:

now it looks like this:

As you can see the sections part is empty.
As I have no glue about the API itself, is there anybody who can help?
Which API is being used? Is there any documentation about this API?

after playing around, while not having great success i noticed something:
If you open https://app.traderepublic.com/profile/transactions and open the browser network tab there is
an entry for the websocket data api.traderepublic.com
In api.py we subscribe to 'type': 'timeline' but i couldnt find this type but instead there was 'type': 'timelineTransactions',
and timelineDetailV2 instead of timelineDetail.
after changing the parts, there was some data to recieve.
# api.py
...
async def timeline(self, after=None):
    #return await self.subscribe({'type': 'timeline', 'after': after})
    return await self.subscribe({'type': 'timelineTransactions', 'after': after})

async def timeline_detail(self, timeline_id):
    #return await self.subscribe({'type': 'timelineDetail', 'id': timeline_id})
    return await self.subscribe({'type': 'timelineDetailV2', 'id': timeline_id})

async def timeline_detail_order(self, order_id):
    #return await self.subscribe({'type': 'timelineDetail', 'orderId': order_id})
    return await self.subscribe({'type': 'timelineDetailV2', 'orderId': order_id})

async def timeline_detail_savings_plan(self, savings_plan_id):
    #return await self.subscribe({'type': 'timelineDetail', 'savingsPlanId': savings_plan_id})
    return await self.subscribe({'type': 'timelineDetailV2', 'savingsPlanId': savings_plan_id})

changing the types.
# dl.py
if subscription['type'] == 'timelineTransactions':
    await self.tl.get_next_timeline(response, max_age_timestamp=self.since_timestamp)
elif subscription['type'] == 'timelineDetailV2':
    await self.tl.timelineDetail(response, self, max_age_timestamp=self.since_timestamp)
else:
    self.log.warning(f"unmatched subscription of type '{subscription['type']}':\n{preview(response)}")

And in the recieved message i got a valid document link as the payload:
api       DEBUG    Received message: '1295 A ..
{
    "id": "2ac5zecb-ae38-424f-8a57-55b5cdba65b4",
    "sections": [
        {...},
        {...},
        {...},
        {...},
        {
            "title": "Dokumente",
            "data": [
                {
                    "title": "Abrechnung Ausführung",
                    "detail": "20.06.2024",
                    "action": {
                        "type": "browserModal",
                        "payload": "https://traderepublic-data-production.s3.eu-central-1.amazonaws.com/timeline/postbox/2024/6/20/..."
                    },
                    "id": "c524ee99-462e-4b9d-bf9c-6be2b932643f",
                    "postboxType": "SAVINGS_PLAN_EXECUTED_V2"
                }
            ],
            "action": null,
            "type": "documents"
        }
    ]
}

Maybe it helps someone with better python knowledge :D
thanks.

someone can fix this plz :D

Based on @tcdev0 i continued to reverse engineer the new data structure returned by TR. As it looks like the structure has been changed in several places (i am not aware how the old structure looked like).
I adapted the code and tried to fix the title text and subtitle text as good as possible to generate reasonable pdf names.
There are patterns where i have no example (i.e. 'Wertpapierübertrag') and in cases where no title can be found an error 'Unable to detect titleText from response' is reported. In debug mode also the json will be printed which cannot be processed.
For now, I checked this with:

"Dividende" (old/new)
"Sparplan"
"Zinsen"
"Kauf"/"Verkauf"

Created a pull request here:
https://github.com/pytr-org/pytr/pull/73

Solved for me with the new update to master. Just as a note, new dividend pdfs are in "\Dokumente" and no longer in "\Abrechnung".

Hi alltogether,
I think I messed my system up. At least I found two installed pytr.
% locate pytr | grep utils.py
/opt/homebrew/lib/python3.11/site-packages/pytr/utils.py
/usr/local/lib/python3.10/site-packages/pytr/utils.py

% which pytr
/opt/homebrew/bin/pytr

can a kind soul give me a tip, what to do, or "simply" deleting both path and re-installing it new? (I do not want to screw the system up more, than it is already.)
thanks
juergen

with python3.10 -m pip uninstall pytr you should be able to uninstall the second one, cause it seems that pytr points to the first one, cause it's in the homebrew environment.

thx for fixing


Don't Merge! PR real time test for source branch full build

Docs Build status updates of commit 0e0ea8b:
:clock10: Full build: the average full build time is 5 min(s) 6 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 0e0ea8b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

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.


Recording video in Firefox for Android results in "Generic Error"

Are you able to record video using Firefox for Android? It seems to me that the MediaRecorder API is unavailable since it throws a "GenericError" when it is started.
The docs say that only audio is supported on Android.

I am not being able to record video and get the same 'GenericError' message.

Same problem here. firefox on android doesn't record video


Implement ishidden on ZFS for BSD

See also: #3, #13.

I should consider implementing on OpenBSD and NetBSD, not just FreeBSD.  However, Julia itself only officially supports FreeBSD, so we will see.

Some more testing: we run the following on FreeBSD:
#include  <stdio.h>
#include <sys/stat.h>

int main() {
    char *fd = "/mnt/.zfs";
    struct stat statbuf;
    stat(fd, &statbuf);
    unsigned int isinvisible = statbuf.st_flags & ((unsigned int) 32768);  /* 0x00008000 */
    printf("%u\n", isinvisible);
    return 0;
}

And this returns:
$ cc test.c && ./a.out
0

So perhaps the uv stat struct is fine, but the behaviour itself on FreeBSD is different to when it's on macOS.  That would make sense.

After some further testing, I believe the jl_lstat call is working as expected:

Path
st_flags (C)
st_flags (Julia)

/mnt/.zfs
0x000
0x000

/mnt
0x800
0x800

/root/projects
0x800
0x800

/root/.bashrc
0x800
0x800

/usr/lib
0x800
0x800

/usr/local/bin/bash
0x800
0x800

/dev
0x000
0x000

Hence, it does seem that out uv stat call is working well.  However, this does expose a greater question: is does st_flags ever actually expose hidden files on FreeBSD?  The answer appears to be no: I ran the following script and had nothing print:
using HiddenFiles

function HiddenFiles._isinvisible(fs::Vector{String}; show_true::Bool = true)
    for f in fs
        i = HiddenFiles._isinvisible(f)
        show_true && i && println(f)
    end
end

function main(root_path::AbstractString)
    for (root, dirs, files) in walkdir(root_path, follow_symlinks=true, onerror=println)
        try
            _isinvisible(joinpath.(root, files))
        catch
            continue
        end
    end
end

main("/")

However, the st_flags attribute does appear to be set, at least, so that must imply that it's possible that we can derive an answer from st_flags on FreeBSD.
Further testing should check if this flag is being set on Linux.  Perhaps this check should be a global UNIX thing?
This comment pertains to #3.

Considering how long it has taken me to get literally nowhere regarding this implementation, I think I would like to save this feature for a different version, in the interest of getting a useable package registered.


Add proper error string for error 0x08 0x00

The app says "Protection (Current Sensor Anomaly)", which seems to mean that the current measuring sensor cannot accurately tell the current charge/discharge rate so it displays 0.00A.
Discussion about the error at https://diysolarforum.com/threads/jk-bms-owners-have-you-had-this-error-yet-heat-pump-electrical-feedback.38996/

Thanks for your contribution! I will merge the PR as soon the pipeline is ready & green.


Got exection 'System.InvalidOperationException' occurred in Google.Api.Gax.dll

hi, I followed each and every steps given in both readme docs. I set GOOGLE_APPLICATION_CREDENTIALS in to the environment variable of windows from System Properties\Advance system settings with path of it's json file location in my computer. I got the credential from console.cloud.google.com according to structured format. And finally, I built the project before start running. But once I run the project and set startup project as QuickStart Project, I got an Exeption at var speech = SpeechClient.Create(); in QuickStart.cs file. What I am doing wrong, I don't get it till now. Here is the details of exception:
"An unhandled exception of type 'System.InvalidOperationException' occurred in Google.Api.Gax.dll
Additional information: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information."
StackTrace:    at Google.Api.Gax.TaskExtensions.WaitWithUnwrappedExceptions(Task task)
at Google.Api.Gax.TaskExtensions.ResultWithUnwrappedExceptions[T](Task`1 task)
at Google.Api.Gax.Grpc.ChannelPool.GetChannel(ServiceEndpoint endpoint)
at Google.Cloud.Speech.V1Beta1.SpeechClient.Create(ServiceEndpoint endpoint, SpeechSettings settings)
at GoogleCloudSamples.QuickStart.Main(String[] args) in D:\Drive-F\Study\Google Cloud Speech Recognition\dotnet-docs-samples-master\dotnet-docs-samples-master\speech\api\QuickStart\QuickStart.cs:line 30
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

After setting GOOGLE_APPLICATION_CREDENTIALS, restart Visual Studio.  New environment variables are only observed when a process is started.

Please re-open if you see this issue again.

On Wed, Feb 1, 2017 at 1:27 AM, Jeffrey Rennie<EMAIL_ADDRESS>wrote:

Closed #147
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/issues/147.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/issues/147#event-943642944,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEEsKkwd1p_3XYUBU05UWxlZrCU564UAks5rX4sLgaJpZM4Lug5N
.

Thanks for helping me. It works!! Sorry for the late to inform you..
Mainuddin Talukdar
Institute of Information Technology
University of Dhaka


Revert "Bump ios toolchains (libdispatch/libtapi/cctools-port)"

Reverts cross-rs/cross-toolchains#50

@Emilgardis plz thanks


Significant performance optimization for color image

Changing camera mode to RGB24, this allows direct buffer copy without I420->RGB conversion

Wow I didn't know this mode existed. this is awesome.
I wonder if we can avoit the buffer copies entirely now, perphaps by using 2 alternating buffers.


Added New Project "Math4Kids" Also updated Readme.md

#129

Neat & Clean PR. Thanks for updating README @Pranit-02 ✨

✨🤝🏻


parseDom (feature request)

Current parseDom operates on jQuery-like objects.

Are you planning implementing parser for real DOM API (getElementsByClassName and so on - i.e. jsdom implements this)?
If not - can I volunteer? (no sense to start if you revoke pull request)
It yes - what should be function names? (either we should rename old one, or somehow mangle new one)

Hi
Not sure why you would want to do this. Have you got a problem with the current DOM parsing?
The parseDom function structure comes from using https://github.com/cheeriojs/cheerio I picked this parser rather than https://github.com/tmpvar/jsdom because its was noticeable faster and handle more real world web pages without issue. Yes its more jQuery-like (which I do not like), but in tests it works faster with less issues. I think a lot of this is down to it using the more forgiving htmlparser2 code.
I would add that some of the architectural structure of microformat-node is based on a couple of generations of older JavaScript microformat parsers some browser based. So microformat-node could now be refactored into a more terse codebase and use modern JS patterns, but I think thats different from what you are suggesting?
If you could explain a little more what we would gain from the changes I could comment some more.

Problem 1: (why I want to add support for jsdom):
I already have a project using jsdom and want to add microfomat support.
I can't use cheerio because it doesn't provides DOM API (it's W3C standard at last).
I've not yet hit any page that jsdom can't parse.
I've not really tested parsing speed, but nowadays network still slower than CPU.
Problem 2: (why I mentioned function names):
Not even cheerio readme names their API a DOM. DOM means some specific API. So if some function has Dom in it's name somebody like me concludes that it accepts of produces objects that supports this specific API.
If you think that there are too match already-existing code that uses this particular function, I think that something like parseW3CDOM() would be clear for user. Is it sounds well for you?

I have an idea - load jQuery using jsdom and pass window.jQuery to parseDom(). Will this work?

Hi I have rebuilt the library still using cheerio, but is now based on the https://github.com/glennjones/microformat-shiv project. If you want to use jsdom I would I inject microformat-shiv and use its get method. This should work the same as using the current version of this project as they share most of the same code.


Upload image to s3 bucket using cognito login user

Describe the bug
We don’t want to add client id and secret in code. Is there any other way to upload image to s3 bucket wth using cognito logged in user?
I can use the below method -
Amplify.Storage.uploadFile(key: fileName, local: fileURL, options: options) { progress in
    print("Progress: \(progress)")

} resultListener: { event in

    switch event {

    case let .success(data):
        print("Completed: \(data)”)

    case let .failure(storageError):
        print("Failed: \(storageError.errorDescription). \(storageError.recoverySuggestion)")
    }

}

But this method is not working after 30 mins of login. after approx 30 mins I am getting this error -
Failed: Unexpected error occurred with message: Could not retreive AWS credentials, credential value is nil or empty.. This should not happen. There is a possibility that there is a bug if this error persists. Please take a look at https://github.com/aws-amplify/amplify-ios/issues to see if there are any existing issues that match your scenario, and file an issue with the details of the bug if there isn't. Issue encountered at:

file: /Users/system/Documents/demo/Pods/Amplify/Amplify/Categories/Auth/Error/AuthError.swift

function: recoverySuggestion

line: 80

Everyting is working fine if I set defaultServiceConfiguration to AWSService manager. like this -
let credentialProvider = AWSCognitoCredentialsProvider(regionType: region, identityPoolId: “region:xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
if let configuration = AWSServiceConfiguration(region: region, credentialsProvider: credentialProvider) {
     AWSServiceManager.default().defaultServiceConfiguration = configuration
}

In this configuration I had to set identity pool id inside the code. Is it safe/secure to put identityPoolId inside code like this to configure?
I am not sure why I am getting this error after approx 30 mins.
Any suggestion will be helpful.
Steps To Reproduce
No specific steps. Just upload a file to awsS3 using amplify.storage method after 30 mins of login and getting the error.

Expected behavior
Should upload image without error.
Amplify Framework Version
1.22.1
Amplify Categories
Storage
Dependency manager
Cocoapods
Swift version
5.0
CLI version
4.52.0
Xcode version
14.2
Relevant log output
No response
Is this a regression?
Yes
Regression additional context
No response
Device
All devices. Tested in iPhone 13 and simulator
iOS Version
16.2
Specific to simulators
No
Additional context
Here's the versions of all the installed pods -

Amplify (1.22.1):

Amplify/Default (= 1.22.1)

Amplify/Default (1.22.1)
AmplifyPlugins/AWSAPIPlugin (1.22.1):

AppSyncRealTimeClient (~> 1.8)
AWSCore (~> 2.27.0)
AWSPluginsCore (= 1.22.1)

AmplifyPlugins/AWSCognitoAuthPlugin (1.22.1):

AWSAuthCore (~> 2.27.0)
AWSCognitoIdentityProvider (~> 2.27.0)
AWSCognitoIdentityProviderASF (~> 2.27.0)
AWSCore (~> 2.27.0)
AWSMobileClient (~> 2.27.0)
AWSPluginsCore (= 1.22.1)

AmplifyPlugins/AWSDataStorePlugin (1.22.1):

AWSCore (~> 2.27.0)
AWSPluginsCore (= 1.22.1)
SQLite.swift (= 0.12.2)

AmplifyPlugins/AWSS3StoragePlugin (1.22.1):

AWSCore (~> 2.27.0)
AWSPluginsCore (= 1.22.1)
AWSS3 (~> 2.27.0)

AppSyncRealTimeClient (1.10.0):

Starscream (~> 4.0.4)

AWSAppSync (3.6.1):

AppSyncRealTimeClient (~> 1.7)
AWSCore (~> 2.27.0)
ReachabilitySwift (= 5.0.0)
SQLite.swift (~> 0.12.2)

AWSAuthCore (2.27.15):

AWSCore (= 2.27.15)

AWSCognitoIdentityProvider (2.27.15):

AWSCognitoIdentityProviderASF (= 2.27.15)
AWSCore (= 2.27.15)

AWSCognitoIdentityProviderASF (2.27.15):

AWSCore (= 2.27.15)

AWSCore (2.27.15)
AWSMobileClient (2.27.15):

AWSAuthCore (= 2.27.15)
AWSCognitoIdentityProvider (= 2.27.15)
AWSCognitoIdentityProviderASF (= 2.27.15)
AWSCore (= 2.27.15)

AWSPluginsCore (1.22.1):

Amplify (= 1.22.1)
AWSCore (~> 2.27.0)

AWSS3 (2.27.15):

AWSCore (= 2.27.15)

@bhavik45 are you still still experiencing this issue? If so, please provide additional details requested from my previous comment to help with troubleshooting the issue.

Sorry for the late response @phantumcode
I am facing this randomly. I couldn't Identify the case. But this happened after I uploaded or loaded the image from my private s3 bucket. It worked fine for 10 mins after loading images, but it started showing the error message. I logged out and logged back in but still, the error was the same. Then I killed the application and relaunched it and it started working again.
Here's the configuration I've added in my app delegate -
let serviceConfig = AWSServiceConfiguration(region: AWSRegionType.APNortheast2, credentialsProvider: nil)
        let poolConfig = AWSCognitoIdentityUserPoolConfiguration(clientId: UserPoolConfigCredentials.clientId, clientSecret: UserPoolConfigCredentials.clientSecret, poolId: UserPoolConfigCredentials.poolId)

        AWSCognitoIdentityUserPool.register(with: serviceConfig, userPoolConfiguration: poolConfig, forKey: "CognitoUserPool")
        self.poolUser = AWSCognitoIdentityUserPool(forKey: "CognitoUserPool")

        let credentialProvider = AWSCognitoCredentialsProvider(regionType: .APNortheast2, identityPoolId: UserPoolConfigCredentials.identityPoolId)
        if let configuration = AWSServiceConfiguration(region: .APNortheast2, credentialsProvider: credentialProvider) {
            AWSServiceManager.default().defaultServiceConfiguration = configuration
        }

        self.poolUser?.delegate = self

Here's amplify configuration -
func configureAmplify() {

        do {
            // You can choose the directory in which AppSync stores its persistent cache databases
            let cacheConfiguration = try AWSAppSyncCacheConfiguration()
            // AppSync configuration & client initialization

            let appSyncServiceConfig = try AWSAppSyncServiceConfig()

            let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig,  userPoolsAuthProvider: {

                class MyCognitoUserPoolsAuthProvider : AWSCognitoUserPoolsAuthProviderAsync {

                    func getLatestAuthToken(_ callback: @escaping (String?, Error?) -> Void) {
                        if let username = UserDefaults.standard.value(forKey: UserDefaultsKey.kLoginUsername) as? String, username != "" {
                            let getUser = appDelegate.poolUser?.getUser(username)

                            getUser?.getSession().continueWith(block: { (task) -> Any? in
                                if let result = task.result {
                                    callback(result.idToken?.tokenString, nil)

                                } else {
                                    let error = (task.error as? NSError)
                                    if error?.code == 400 {
                                        appInstance.redirectToLoginForInvalidSession()
                                        callback(nil, task.error)
                                    } else {
                                        callback(nil, task.error)
                                    }

                                }
                                return task
                            })

                        } else {

                            AWSMobileClient.default().getTokens { (tokens, error) in
                                if error != nil {
                                    callback(nil, error)
                                } else {
                                    callback(tokens?.idToken?.tokenString, nil)
                                }
                            }
                        }

                    }
                }
                return MyCognitoUserPoolsAuthProvider()}(), cacheConfiguration: cacheConfiguration)

            appSyncClient = try AWSAppSyncClient(appSyncConfig: appSyncConfig)

            appSyncClient?.apolloClient?.cacheKeyForObject = { $0["id"] }
            _ = AppSyncManager.sharedInstance

            //init AWSS3 Manager class
            _ = AWSS3Manager.sharedInstance

        } catch {
            print("Error initializing appsync client. \(error)")
        }
    }

For sign in I've used this method -
let user = AWSCognitoIdentityUserPool(forKey: "CognitoUserPool")
appDelegate.poolUser = user

let getUser = appDelegate.poolUser?.getUser(username)
getUser?.getSession(username, password: password, validationData: nil)

My amplifyconfiguration.json looked like this -
{
    "UserAgent": "aws-amplify-cli/2.0",
    "Version": "1.0",
    "api": {
        "plugins": {
            "awsAPIPlugin": {
                "hubFleetApi": {
                    "endpointType": "",
                    "endpoint": "",
                    "region": "",
                    "authorizationType": ""
        }
      }
    }
  },
    "auth": {
        "plugins": {
            "awsCognitoAuthPlugin": {
                "UserAgent": "aws-amplify/cli",
                "Version": "0.1.0",
                "IdentityManager": {
                    "Default": {

          }
        },
                "AppSync": {
                    "Default": {
                        "ApiUrl": "",
                        "Region": "",
                        "AuthMode": "",
                        "ClientDatabasePrefix": ""
          }
        },
                "CredentialsProvider": {
                    "CognitoIdentity": {
                        "Default": {
                            "PoolId": "",
                            "Region": ""
            }
          }
        },
                "CognitoUserPool": {
                    "Default": {
                        "PoolId": "",
                        "AppClientId": "",
                        "Region": "",
                        "AppClientSecret": ""
          }
        },
                "Auth": {
                    "Default": {
                        "authenticationFlowType": ""
          }
        },
                "S3TransferUtility": {
                    "Default": {
                        "Bucket": "",
                        "Region": ""
          }
        }
      }
    }
  },
    "storage": {
        "plugins": {
            "awsS3StoragePlugin": {
                "bucket": "",
                "region": "",
                "defaultAccessLevel": "guest"
      }
    }
  }
}

Please let me know if you need any other details.
Thank you.

@bhavik45 Can you explain your use case for using Auth, Storage and API?  It looks like there are a few things that are unnecessary in your setup that can be simplified depending on your need and use case.
For example,
configuring amplify can be this:
        let authPlugin = AWSCognitoAuthPlugin()
        let storagePlugin = AWSS3StoragePlugin()
        let apiPlugin = AWSAPIPlugin()
        do {
            try Amplify.add(plugin: authPlugin)
            try Amplify.add(plugin: storagePlugin)
            try Amplify.add(plugin: apiPlugin)
            try Amplify.configure()
            print("Initialized Amplify");
        } catch {
            assert(false, "Could not initialize Amplify: \(error)")
        }
    }

Auth signin:
    func signIn(username: String, password: String) -> AnyCancellable {
        Amplify.Auth.signIn(username: username, password: password)
            .resultPublisher
            .sink {
                if case let .failure(authError) = $0 {
                    print("Sign in failed \(authError)")
                }
            }
            receiveValue: { _ in
                print("Sign in succeeded")
            }
    }

Storage upload:
        let storageOperation = Amplify.Storage.uploadData(
            key: key,
            local: fileUrl,
            options: options,
            progressListener: { progress in
                print("Progress: \(progress)")
            }, resultListener: { event in
                switch event {
                case .success(let data):
                    print("Completed: \(data)")
                case .failure(let storageError):
                    print("Failed: \(storageError.errorDescription). \(storageError.recoverySuggestion)")
                }
            }
        )
        storageOperation.start()

For additional details, please refer to the Amplify V1 documentation: https://docs.amplify.aws/lib-v1/q/platform/ios/

@bhavik45 Were you able to resolve the issues? If not, please see my previous question/comment.

Closing this issue, please re-open this issue if you are still seeing the issue.


suspicious

does YouTube get suspicious if the views are from non logged in accounts or do you have some way of getting logged in accounts?

I don't know. And I don't have any way of getting logged-in accounts.


Does the flake.nix works with home-manager.nix?

I'm guessing it only works for nixos.nix.

Indeed, it only works for nixos.nix in its current form. However, you can always add "${inputs.impermanence}/home-manager.nix" to your modules.

Thanks!

Is this an issue worth keeping open?

Why not expose home-manager.nix in flake.nix?

I don't think it's possible yet to do that with flakes? They only expose a nixosModules IIRC

This PR has context / discussion / references

I believe this should be doable, nix-doom-emacs does it. Unless I am missing something.


Max transfer rate

Minecraft: 1.10.2
FluxNetworks: FluxNetworks-1.10.2-1.2.6
Forge: forge-<IP_ADDRESS>2
SonarCore: SonarCore-1.10.2-3.2.9
I have a set of Nether Star generators connected to the flux network (produce +-2.35 BRF/t). I have a Flux point attached to a Energy Pylon from Draconic Evolution (which is connected to a Tier 8 Energy Core). I have "Ignore Limit" set to true. The max send rate is 2.35 BRF/t. But the max receive rate is 34.0 KRF/t. If I add more Flux Points, the number does not go up. How do I fix this?

This seems to be working fine. The max send rate refers to how much you could send IF you're energy generation could reach that rate. The 34 KRF/t is how much your Nether Star generators are creating (they may have limiters, themselves). Also you may have found other issues relating to Flux Points not adding to Draconic Storage over 2.14 BRF - this will be fixed in the next version.


Add support for ML-style or-patterns

Currently Lean's pattern matching doesn't have ML-style or-patterns leading to somewhat repetitive of this kind:
def balanceLB {h c} : almostNode h → Int → rbnode h c → hiddenTree (h + 1)
| LR (R a x b) y c, z, d => HR (R (B a x b) y (B c z d))
| RR a x (R b y c), z, d => HR (R (B a x b) y (B c z d))
| V axb, z, d => HB (B axb z d)

You'll notice that the RHS of the first two cases are exactly identical. I propose, we support ML-style or-patterns to allow more compact code like this:
def balanceLB {h c} : almostNode h → Int → rbnode h c → hiddenTree (h + 1)
| LR (R a x b) y c, z, d
| RR a x (R b y c), z, d => HR (R (B a x b) y (B c z d))
| V axb, z, d => HB (B axb z d)

The following is a proposed spec for the feature:
Currently, the Lean parser always expects a => after the LHS of a pattern match. As such there would be no ambiguity adding or-patterns by leaving out the RHS for certain patterns.
I propose, we allow either the => or a further pattern after a LHS has been completed, i.e. the correct number of arguments has been matched.
Several patterns are compatible if the following rules hold:

The set of matched variables is the same. In the sense that the same names are bound, in arbitrary order.
Bound constants do not count as variables and can be different between patterns
wildcard patterns do not count as variables and can be different between patterns
Each variable that occurs in shared patterns has to have the same type. Here "same" means definitionally equal.

This will allow us to write the following:
def fib : Nat → Nat
| 0 => 1
| 1 => 1
| (n+2) => fib n + fib (n+1)

def fib2 (n : Nat) : Nat :=
match n with
| 0 => 1
| 1 => 1
| (n+2) => fib2 n + fib2 (n+1)

on the other hand the following is forbidden:
inductive strOrNum
| S (s : String)
| I (i : Int)
open strOrNum

def ex1 :=
  match S "test" with
  | I a | S a => 3

It is forbidden, because the types of the variables a are not definitionally equal. On the other hand the following is allowed:
def ex1 :=
  match S "test" with
  | I _ | S _ => 3

Semantically, the left out pattern takes on exactly the term that's the RHS of the last merged pattern:
def fib : Nat → Nat
| 0
| 1 => 1
| (n+2) => fib n + fib (n+1)

is the same as:
def fib : Nat → Nat
| 0 => 1
| 1 => 1
| (n+2) => fib n + fib (n+1)

For pretty-printing purposes, I propose sticking to whatever was written in the source code, i.e. merge the patterns that are merged in source code and keep the ones separate that were separate.

For proof and computational purposes, the two syntaxes should be interchangeable:
(match n with
| 0 | 1 => 1
| (n+2) => fib n + fib (n+1)) =
(match n with
| 0 => 1
| 1 => 1
| (n+2) => fib n + fib (n+1))

as such the aforementioned equality should ideally hold definitionally. This could be achieved by the former reducing to the latter.

For equation lemmas that we are going to have anyway for the match expressions, the or-patterns can have additional lemmas:
Whilst the normal match expression has lemmas for each case asserting the previous cases weren't taken. The or-patterns have theses premises combined in a disjunction.
This new equation lemma is potentially useful in proofs where one might want to treat the RHS uniformly.
I feel fairly strongly about this one, since it may well allow us to do a bunch of operations on an RHS without having to do a cases followed by applying the same exact chain of tactics many times. Consider this example:
def balance : color → node → Nat → node → node
| color.black, node.tree color.red (node.tree color.red a x b) y c, z, d
| color.black, node.tree color.red a x (node.tree color.red b y c), z, d
| color.black, a, x, node.tree color.red (node.tree color.red b y c) z d
| color.black, a, x, node.tree color.red b y (node.tree color.red c z d) =>
  node.tree color.red (node.tree color.black a x b) y (node.tree color.black c z d)
| color, a, x, b => node.tree color a x b

if we have some kind of lemma that is useful for massaging the RHS, we can uniformly rewrite the RHS for all the cases in one go and only use the premises later in the proof. At which point, we can possibly weaken the premises and unify them into fewer cases that we have to do actual work about.

Feel free to poke holes at the initial spec, I'm happy to do more homework and extend it as needed.

Basic support can be implemented as a macro, i.e., a Syntax to Syntax transformation.
That is, we would expand
def fib : Nat → Nat
| 0 | 1 => 1
| (n+2) => fib n + fib (n+1)

into
def fib : Nat → Nat
| 0 => 1
| 1 => 1
| (n+2) => fib n + fib (n+1)

If  we use macros, then we can also support
inductive strOrNum
| S (s : String)
| I (i : Int)
open strOrNum

def ex1 :=
  match S "test" with
  | I a | S a => toString a

The RHS would be elaborated twice. Once in a context where a : String, and another a : Int.
One issue here is the IDE integration, when we hover over a, I think the server would return information for the first alternative.
Error messages may also be confusing. We may get errors for both alternatives. For example, suppose we write
def ex1 :=
  match S "test" with
  | I a | S a => not a

We would get the type mismatch message twice.
Regarding pretty-printing, we can accomplish it by adding annotations as we do for inaccessible terms and x@ patterns.
This is compatible with the feature as a macro approach.

Several patterns are compatible if the following rules hold:

If we decide to enforce these rules, then the macro approach is not sufficient, and we would have to modify the match elaborator which is already very complicated. I don't think it would be feasible to pursue this option in the near future.

Whilst the normal match expression has lemmas for each case asserting the previous cases weren't taken. The or-patterns have these premises combined in a disjunction.

To be able to support this feature, we would have to enforce the rules you sketched above.

Feel free to poke holes at the initial spec, I'm happy to do more homework and extend it as needed.

I am wondering whether ML languages put additional "bells and whistles" on top of this feature.

ML languages typically do enforce the same types across variants, double checked with F# and Haskell prior to making a proposal and it's also consistent with my memory. And when I was thinking about it as a macro with double elaboration, and different types, then the IDE problem immediately shows up.
Whilst it's technically strictly more expressive as a pure macro expansion, I'm fairly confident it's less useful. Because your proof state would get jumbled or you would have to pick one.
At that point it's a more succinct syntax, yes, but you can't use it for proofs naturally.
Additionally, I conjecture that case where an RHS is syntactically the same term but with different types doesn't occur much if at all in practise. The only times where the RHS terms would be the same is applications of generic functions and compositions thereof, like your toString example above. That said, I don't remember seeing code of the kind that would collapse under this scenario ever written. I'm sure it's possible to come up with examples, but they'd be pretty rare.

If we decide to enforce these rules, then the macro approach is not sufficient, and we would have to modify the match elaborator which is already very complicated. I don't think it would be feasible to pursue this option in the near future.

I wasn't thinking about this feature in terms of a macro precisely because of enforcing some additional rules as well as the IDE. And also I'm thinking of it as a means to make proofs more powerful.
One big problem we have if we go down the macro-only route is that we cannot easily fix it with a more elaborate strategy further down the line. That is to say, it's as we all know, removing features from a language is a very unpopular move. And pattern matching in particular is such a central component of the language that we should take it slow and get it right before releasing.
We can add the macro to the documentation as an example for something that can be done using macros but I don't think it's a great candidate to build the language feature.
I was thinking of the features more in terms of downcompilation of the following kind:
given the generate matcher with major premise S and minor premises A a b, B a b, C c (hopefully I'm using your terminology correctly). Here matcherFunc stands for the current construction of a match expression.
let matcherFunc : S -> T
| A a b => f a b
| B a b => f a b
| C c => g c

And given a match expression with or patterns
match x with
| A a b | B a b => f a b
| C c => g c

translates to:
match x with
| A a b => matcherFunc (A a b)
| B a b => matcherFunc (B a b)
| C c => matcherFunc (C c)

this way, we get type checking due to the type checking already done in the matcherFunc, the term size doesn't explode exponentially. We get the helper lemmas from matcherFunc and just need to do the disjunction and call of whatever the premise is in matcherFunc.
I am not perfectly sure, if we get the type compatibility (def eq) between the various a and b variables for free, but we can enforce that at generation time if need be.

I am wondering whether ML languages put additional "bells and whistles" on top of this feature.

Extensions to basic pattern matching include:

and patterns: they are a dual to or patterns and require the input to match multiple patterns at the same time. E.g. (var1, var2) & (0, _)
as patterns: they allow you to name sub expressions. E.g. (var1, var2) as tuple1
guard or variable patterns: they allow a pattern to match only if a predicate is true. Would in our case have to be a decidable predicate. E.g. a, b when a < b.
view or active patterns: they allow you to execute some computation and pattern match the result. E.g. RGB(r, g, b) where RGB is a function color -> (nat x nat x nat).

this list is taken from F#, similar extensions exist for haskell.
https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/pattern-matching
Of the aforementioned my guess as for the rough order of usefulness / prevalence is something like:

or patterns: really quite common and fairly clear semantics
guards: would be useful, but there's an interesting interaction between guards and exhaustiveness checking that would need some careful thinking.
as patterns: really quite simple. They just make things a tiny bit more compact.
views: very powerful since they make pattern matching effectively a plug-in thing. But also quite niche
and patterns: I haven't come across that much at all.

And finally, if doing an extension like this is something that there's at least interest it, I'd be very happy to spend (even considerable) time on it. I'd probably need a bit of support getting started, though.
What I don't want to do, is spend time on it, make some choices that are not compatible with your goals, make a pr and have it be rejected. That's why I'm reaching out ahead-of-time.

Thanks! Your message is very useful. I agree with the points you made. I have only one technical issue that is not clear to me. I will describe it below.

What I don't want to do, is spend time on it, make some choices that are not compatible with your goals, make a pr and have it be rejected. That's why I'm reaching out ahead-of-time.

It makes sense. I am going to create a "roadmap" topic at the lean4-dev channel. It will be useful to decide when it is a good time to add new features.

I'd be very happy to spend (even considerable) time on it.

This is great. My main concern is that I think implementing this feature (as an elaborator) is a tough project for new contributors. It would require a considerable amount of synchronization with us. The current implementation is already very complicated, and as you know, we have recently fixed a few bugs there. It is also incomplete. We are not generating equations nor the elimination principles for writing proofs.

I wasn't thinking about this feature in terms of a macro precisely because of enforcing some additional rules as well as the IDE.

Makes sense.

And also I'm thinking of it as a means to make proofs more powerful.

I think this one is tricky. Lean currently generates an auxiliary function for a sequence of match left-hand-sides. The function doesn't depend on the right-hand-sides. The function depends only on the patterns, and it supports dependent elimination. For example, suppose we have the patterns
| [a, b, c] => ...
| a::as => ...
| _ => ...

we generate a function with type
  {α : Type u_1} →
  (motive : List α → Sort u_2) →
  (x : List α) →
  ((a b c : α) → motive [a, b, c]) →
  ((a : α) → (as : List α) → motive (a :: as)) →
  ((x : List α) → motive x)
  → motive x :=

The function always has 4 different sections.
1- Auxiliary parameters {α : Type u_1}
2- A "motive"  (motive : List α → Sort u_2) . When using the function, we set the result type we want to generate. The type may depend on the discriminant.
3- Discriminants (x : List α). In this example, we have only one. The arity of the motive is equal to the number of discriminants.
4- One argument for each alternative. Note that, each alternative produces the motive.
We are using this design in Lean4 because we can isolate the dependent pattern matching compilation from the RHS code. It prevents accidental code explosion, allows us to pretty print match-expressions back to the user, and allows us to "update" the motive. We currently update the motive in the module responsible for showing functions terminate. In Lean 4, we elaborate functions as other functional programming languages, and we have a separate module for showing whether the function terminates or not. This module traverses the function definition, and often "updates" the motive argument in the auxiliary functions created for each match expression.
For example, if we use the command
set_option pp.all true
#print fib

we obtain
   ...
   fib.match_1.{1} (fun (x : Nat) => @Nat.below.{1} (fun (x : Nat) => Nat) x → Nat) x
   ...

The Nat.below argument was introduced by the module that shows termination using structural recursion. My point here is that even for non-dependent functions such as fib, our frontend will explore the fact that the auxiliary generated function fib.match_1 performs dependent elimination. Note that Nat.below depends on the discriminant x here.
I think it would be quite hard to reflect the or patterns in these auxiliary functions because the motive depends on the discriminants. Even if we managed to do it, we would also have to update other modules such as the one that shows termination by structural recursion.
I agree with you that the macro approach has shortcomings (e.g., IDE integration) and that enforcing the rules you have described is the ideal long-term solution.
Regarding the match feature list, I think the main missing features for Lean are: guards and or patterns. We already support as patterns in Lean. They are written as xs@(a::b::as). We also have basic support for views. We can mark functions with the attribute @[matchPattern]. We use it for +. This is why we can write x+1.
Feasibility/Timing

The macro-based approach could be implemented now. However, I agree with you it has shortcomings and it is not worth using it as a permanent solution. As you pointed out, it is not ideal even as a temporary solution.

Elaboration-based approach, but duplicating RHS for or patterns. It addresses the IDE issues and allows us to enforce the rules you described above. It is compatible with the current design, but will not help us reduce the number of cases in proofs. Right now, it would be hard to develop this feature. It affects a module that is complicated and has missing features (e.g., equations and induction principles).

Elaboration-based approach without RHS for or patterns. I think this is infeasible to implement.

Thanks for the detailed reply. And I agree also regarding the feasibility and timing. In light of that, I think it best to park the issue until the equations and induction principles are complete.
Just one question of understanding. When I said to make it useful for proofs, I meant this:
let matchFunc
| A a b => f a b
| B a b => f a b
| C c => g c

dependent or not gives rise to several lemmas:
def lemma1 : ∀ x a b, x = A a b → matchFunc x = f a b
def lemma2 : ∀ x a b, (∀ a b, x ≠ A a b) → x = B a b → matchFunc x = f a b
def lemma3 : ∀ x c, (∀ a b, x ≠ A a b) → (∀ a b, x ≠ B a b) → x = C c → matchFunc x = g c

this should be provable by a bunch of distinction by cases on the structure of the RHS term. There isn't much clever going on, just raw unfolding.
What I was merely proposing was adding a further lemma for the or pattern:
def lemma4 : ∀ x a b, (x = A a b) ∨ ((∀ a b, x ≠ A a b) ∧ x = B a b) → matchFunc x = f a b

this last one holds purely by propositional reasoning without caring about the RHS at all.
Of course this lemma is useless in general, but it allows us to massage the RHS of this lemma, i.e. all RHS's at uniformly at once.
I was not suggesting that it lowers the number of cases in general, but it still might occasionally be useful and it's cheap to prove if we already have the lemmas 1-3 proven. I hope that makes sense.
The kind of case where I see this as useful is when doing an apply where you might apply this lemma and get the disjunction into the context.

I am wondering whether ML languages put additional "bells and whistles" on top of this feature.

There's another feature (perhaps two) present in Coq and OCaml not mentioned here: the ability to put alternatives as subpatterns.  For example, I can write
match foo with
| bar (baz a | qux a) => ...
end

This can be combined with as clauses in interesting ways to deal with the "same set of variables" requirements
match foo with
| bar (baz a | _ as a) => ...
| qux (succ (succ n | zero as n)) => ...
end

The | patterns are really rather helpful, thank you for implementing them. I would still love to see match guards.
I think as far as exhaustiveness goes, treating them as not contributing to exhaustivity checks would be fine. I would personally not expect the compiler to be able to analyze arbitrary predicates, and don't write code this way. (Though I've never written substantial OCaml. does OCaml do this?)
I think the syntax could look something like this. I would imagine if (or whatever other guard syntax) would be expected to follow any or patterns and so directly precede =>. Though this is less powerful than putting it directly on each pattern, it seems significantly simpler.
inductive Foo where
  | bar (a b c : Nat)

let foo := Foo.bar 1 2 3
match foo with
  | .bar a b c if a == b * c => ... -- guard here means this .bar match does not help exhaustiveness
  | .bar a b c => ...


Added translation for today and tomorrow

I had misread the documentation of Moment.js. We've to provide the translation for today and tomorrow ourselves. For the translation I use the standard MM² translation mechanism.

I don't think we need to include this in the changelog. Because it's a fix for code that is not released anyway.


Trained  and got bad results

At  first， thanks for  your code.  I  trained the code according to the steps.  and test on OTB100 .but got bad results.  I didn’t change the code, and only use pytorch 0.3 and python2.7. Is there something I ingroe. or is there any specific things I should notice. Expected your reply!
The precision is 0.462. and the success is0.349 on OTB100

Hi, xi-mao,
I think the problems may be caused due to the platform. As far as I know, different platforms have a significant effect on performance. Please refer to this previous reported https://github.com/HengLan/SiamFC-PyTorch/issues/7.

Can you have a try using PyTorch 0.40 and Python 2.7, if possible?

@HengLan  I will try. thanks


in logstash file input doesn't work (on Windows)

I'm struggling to get the logstash file input to recognise wildcards for the path parameter.
Specifically, given the following set of log files:
C:\Users\David.Laing>dir \\pkh-ppe-web24\Logs\TradingApi.log*.log
 Volume in drive \\pkh-ppe-web24\Logs is Data
 Volume Serial Number is B01F-6AF1

 Directory of \\pkh-ppe-web24\Logs

26/07/2013  23:59         9,565,098 TradingApi.log20130726.log
27/07/2013  23:59        22,263,734 TradingApi.log20130727.log
28/07/2013  23:59        26,240,277 TradingApi.log20130728.log
29/07/2013  23:41        15,396,006 TradingApi.log20130729.log
30/07/2013  23:59         6,202,809 TradingApi.log20130730.log
31/07/2013  23:59         7,834,500 TradingApi.log20130731.log
01/08/2013  16:36         2,671,384 TradingApi.log20130801.log
               7 File(s)     90,173,808 bytes
               0 Dir(s)   5,455,089,664 bytes free

This works (ie, picks up new lines written to this file)
 file {
        type => "ci_log4net"
        path => "\\pkh-ppe-web24\Logs\TradingApi.log20130801.log"
        stat_interval => 1
        add_field => [ "service", "TradingApi" ]
        add_field => [ "@real_source_host", "pkh-ppe-web24" ]
        #debug => true
    }

This doesn't (ie, doesn't pick up new lines from any of the files)
    file {
        type => "ci_log4net"
        path => "\\pkh-ppe-web24\Logs\TradingApi.log*.log"
        stat_interval => 1
        add_field => [ "service", "TradingApi" ]
        add_field => [ "@real_source_host", "pkh-ppe-web24" ]
        #debug => true
    }

Seems like this is an escaping issue => it works too by escaping "\": \\\\pkh-ppe-web24\\Logs\\TradingApi.log2013080*.log.
Though I prefer "/" too. :-)

On windows:
1.path => "F:\Elastic Stack\Apache Log Files\aa.log"
This works.
2.path => "F:/Elastic Stack/Apache Log Files/*.log"
This works.
3.path => "F:\Elastic Stack\Apache Log Files*.log"
This doesn't work!
Logstash got stuck at "Pipeline main started",without giving any error information!
It is a BUG! (How strange it is!)
(Note:It is not caused by "start_position","ignore_older" and the "sincedb".)


Pure client side Graph example

Hi All,
I have been studying the various examples provided here however Im unable to see any examples which provide a pure client side app which makes graph calls. Is there a reason for this?
 Im looking for some example which simply uses the authorization code flow with pkce to get a token and call the MS Graph. Is there som technical resson why this is not available?

There is no such sample seems to be available.

@AnthonyPhan - As per my understanding, the standard and recommended way to do the authentication at the server side and then call the API's at the client side.
However you can implement the authorization code flow at client side and do the Graph API call's using generated token at client side.

@AnthonyPhan - Please let us know if you need any further details or shall we close this issue?

@v-chetsh it looks like the "simple-auth" service is being deprecated and as of a recent update of teamsfx the standard hello world uses a complete client side implementation of authorisation code flow with PKCE as suggested my this post.
Here is a further reference:
https://stackoverflow.com/q/70388145/3095420


Added multi-chat support for UnturnedChat methods

Rework of wrapMessage method. Originally RocketMod divides text into multiple messages every 90 characters, now it uses a constant from ChatManager, so now messages sent by plugins via UnturnedChat will look better.

The previous implementation tried to break only on words, yours would cut words in half if they exceed max length. My suggestion is to just change the constant to the built-in one and keep the rest of the original implementation.

Thanks for the upgrade MidnightTokyo, and thanks for pointing out the loss of word wrapping Trojaner! :)
I think Trojaner's proposed compromise to use ChatManager.MAX_MESSAGE_LENGTH instead of the existing constant of 90 in that method makes sense if you'd like to revise your RP to do that instead.
In general, we're not looking to fundamentally upgrade Rocket with this repo - only maintain compatibility. There are some awesome community projects with varying degrees of progress beyond that though like:

https://github.com/RocketModFix/RocketModFix relatively conservative good improvements
https://github.com/openmod/openmod has Rocket compatibility but goes far beyond to the earlier envisioned future of Rocket

Thank you both! I've made a note to update the LDM release here and in the base game as part of the next update.


Bug: Inserting line break between two text nodes does not break a line correctly

Inserting line break between two text nodes currently insert a new line/paragraph without breaking the line from the text caret. It works as expected if your caret is within a text node though. Please see video below for repro steps.
Lexical version: 0.2.2
Steps To Reproduce
https://user-images.githubusercontent.com/118264/163897483-61fbd625-2063-4a48-8eff-f6e37c3ec8a4.mp4
Link to code example:
The current behavior
The expected behavior

This is probably related to the changes I made to insertParagraph earlier this week:
https://github.com/facebook/lexical/pull/1748


Eventhubs Multiple Client

Hide EventHubClient, EventHubConsumer, EventHubProducer and EventProcessor from users
Created EventHubProducerClient and EventHubConsumerClient. Users can use them to send and receive events
EventHubConsumerClient can receive from one partition or all partitions of an EventHub with or without load balancing and checkpointing. It basically wraps the previous EventProcessor functionalities with some changes on EventProcessor.
EventHubProducerClient can send events with partition_id to a specific partition, partition_key (not specific to a partition. But events with same partition_key will go to same partition), or round robin to partitions determined by service.
Because of the new sync version of EventHubConsumerClient, so we added sync version of EventProcessor wrapped by EventHubConsumerClient.
Because of the sync version of EventProcessor, we added sync version of checkpointstore using blob storage. Now we have three packages, i.e., "azure-eventhub", "azure-eventhubs-checkpointstoreblobaio" and "azure-eventhubs-checkpointstoreblob"
Added _ too hide all python files and only expose classes via init.py

Can one of the admins verify this patch?

/azp python - eventhubs-test

This PR is obsolete


Web - Settings - The DOB error shows inconsistent behavior where the scroll bar only appears in the month of September.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to "Settings."
Click on "Profile."
Click on " Personal details."
Click on " Date of birth."
After selecting the 31st of a month, go through every subsequent month and notice that an error appears for the months with 30 days.
Notice that when an error occurs, a scroll bar does not appear for any month except for September.

Expected Result:
In case of an error, the scroll bar should not appear, ensuring consistent behavior across all months.
Actual Result:
In the case of a Date of Birth (DOB) error, the scroll bar appears only for the month of September, resulting in inconsistent behavior.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: yes
Reproducible in production?: yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/bfb396b0-8d0f-4642-8fc6-6e3703438bab
https://github.com/Expensify/App/assets/93399543/587c98ad-b72b-491c-8759-cba03bbb1ce7
Expensify/Expensify Issue URL:
Issue reported by: @usmantariq96
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1685523088991359
View all open jobs on GitHub

I can't reproduce this - there's no scrollbar for any of the months for me 🤔

Asked in Slack about reproduction steps


Amazon Bedrock Agent Samples - [Bug]

Describe the bug
I have seen 2 issues till now, in the notebook examples/amazon-bedrock-multi-agent-collaboration/devops_agent/01_Create_Grafana_Assistant_Agent/01_create_grafana_assistant.ipynb:

The import code uses __file__ which is causing errors as it's not properly defined in the notebook context:

sys.path.append(str(Path(__file__).parent.parent.parent.parent.parent))
from src.utils.bedrock_agent_helper import create_lambda_layer, upload_api_schema, create_agent, invoke_agent_helper

The functions create_lambda_layer and upload_api_schema are incorrectly imported from src.utils.bedrock_agent_helper. These functions actually exist in amazon_bedrock_agents.restaurant_booking_custom_orchestration_agent.agents.

Steps to Reproduce

Open the notebook at examples/amazon-bedrock-multi-agent-collaboration/devops_agent/01_Create_Grafana_Assistant_Agent/01_create_grafana_assistant.ipynb
Run the cell containing library imports
Observe the import errors due to incorrect path and module references

Expected behavior
The following code should be used instead as it works correctly:
current_path = Path.cwd().parent.parent.parent
sys.path.append(str(current_path))
from amazon_bedrock_agents.restaurant_booking_custom_orchestration_agent.agents import (
    create_lambda_layer,
    upload_api_schema,
)

Screenshots
while running the code give in this repo

After making changes:

Additional context

The DevOps agent examples need clearer documentation as multiple users are having difficulty implementing them
The path handling in notebooks should be more robust and not rely on __file__
The import statements should be updated to reflect the correct module structure

Suggested improvements

Update the notebook with the correct import path and module references
Enhance the documentation for the DevOps agent examples to make implementation clearer
Consider adding troubleshooting guides for common issues

Should I raise a PR for this?

Added new files agents.py and kb.py in devops agents. These will be removed in future. Can you check if this fix works and you get the desired behaviour ? Thanks.

Still I am facing many issues while implementing this POC.
1)In agents.py, create_lambda_layer function is giving me error stating some errors, After debugging I came to know that it has some platform dependecny, So the following changes is working for me have a look and let me know what you think.
def create_lambda_layer(agent_name: str, requirements: str) -> str:
    """
    Create an AWS Lambda layer with specified requirements, supporting multiple operating systems.

    Args:
        agent_name (str): Name of the agent/layer
        requirements (str): Path to requirements.txt file

    Returns:
        str: Lambda layer ARN if successful, None otherwise
    """
    try:
        # Clean up any existing layer directory
        if os.path.exists("layer"):
            shutil.rmtree("layer")

        # Create directory structure
        layer_path = Path("layer/python")
        layer_path.mkdir(parents=True, exist_ok=True)

        # Install packages
        print("Installing required packages...")
        subprocess.check_call([
            sys.executable,  # Use the current Python interpreter
            "-m",
            "pip",
            "install",
            "-r",
            requirements,
            "-t",
            str(layer_path),
            "--no-cache-dir"  # Avoid caching issues
        ])

        # Create ZIP file using platform-specific methods
        print("Creating ZIP file...")
        if platform.system() == "Windows":
            _create_zip_windows("layer")
        else:  # macOS or Linux
            _create_zip_unix("layer")

        # Create Lambda layer
        print("Publishing Lambda layer...")
        lambda_client = boto3.client('lambda')

        with open("layer/layer.zip", 'rb') as zip_file:
            response = lambda_client.publish_layer_version(
                LayerName=f'{agent_name}-layer',
                Description='Action group lambda layer',
                Content={
                    'ZipFile': zip_file.read()
                },
                CompatibleRuntimes=[
                    'python3.7', 'python3.8', 'python3.9',
                    'python3.10', 'python3.11', 'python3.12'
                ],
                CompatibleArchitectures=['x86_64']
            )

        layer_arn = response['LayerVersionArn']
        print(f"Layer created successfully.")
        print(f"Version: {response['Version']}")
        print(f"Layer ARN: {layer_arn}")

        return layer_arn

    except subprocess.CalledProcessError as e:
        print(f"Command failed: {e.cmd}")
        print(f"Output: {e.output if hasattr(e, 'output') else 'No output'}")
        raise
    except Exception as e:
        print(f"Error creating layer: {str(e)}")
        raise
    finally:
        # Clean up
        if os.path.exists("layer"):
            try:
                shutil.rmtree("layer")
                print("Cleaned up temporary files")
            except Exception as e:
                print(f"Warning: Could not clean up temporary files: {str(e)}")

def _create_zip_windows(directory: str):
    """Create ZIP file on Windows using built-in Python zipfile module."""
    import zipfile

    def zipdir(path, ziph):
        for root, _, files in os.walk(path):
            for file in files:
                file_path = os.path.join(root, file)
                arc_path = os.path.relpath(file_path, path)
                ziph.write(file_path, arc_path)

    with zipfile.ZipFile(os.path.join(directory, "layer.zip"), 'w', zipfile.ZIP_DEFLATED) as zipf:
        zipdir(os.path.join(directory, "python"), zipf)

def _create_zip_unix(directory: str):
    """Create ZIP file on Unix-like systems using zip command."""
    try:
        # First, check if zip is available
        subprocess.run(["zip", "-h"], capture_output=True, check=True)
    except (subprocess.CalledProcessError, FileNotFoundError):
        print("Warning: zip command not found, falling back to Python zipfile")
        _create_zip_windows(directory)
        return

    # Use zip command if available
    subprocess.check_call([
        "zip",
        "-r",
        "layer.zip",
        "python"
    ], cwd=directory)

2)While testing the grafana agent: After running this cell
%%time
import uuid
session_id:str = str(uuid.uuid1())
query = """can you get me alert history of memory alert for the app app1"""
response = invoke_agent_helper(
    query, session_id, grafana_agent_id, grafana_assistant_agent_alias_id, enable_trace=True
)
print(response)

I am getting this error.

3)Getting this error while running 3rd cell in creating supervisor agents.
%store -r

.

After creating the supervisor agents, I am getting some the following error

supervisor_agent_alias_id, supervisor_agent_alias_arn = associate_sub_agents(
    supervisor_agent_id, sub_agents_list
)
supervisor_agent_alias_id, supervisor_agent_alias_arn

{
	"name": "ValidationException",
	"message": "An error occurred (ValidationException) when calling the AssociateAgentCollaborator operation: 1 validation error detected: Value 'arn:aws:bedrock:us-west-2:061051234909:agent/1XLLTBIRCF' at 'agentDescriptor.aliasArn' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}",
	"stack": "---------------------------------------------------------------------------
ValidationException                       Traceback (most recent call last)
Cell In[17], line 1
----> 1 supervisor_agent_alias_id, supervisor_agent_alias_arn = associate_sub_agents(
      2     supervisor_agent_id, sub_agents_list
      3 )
      4 supervisor_agent_alias_id, supervisor_agent_alias_arn

File ~/Downloads/Poc/amazon-bedrock-agent-samples/examples/amazon-bedrock-multi-agent-collaboration/devops_agent/agents.py:420, in associate_sub_agents(supervisor_agent_id, sub_agents_list)
    418 for sub_agent in sub_agents_list:
    419     wait_agent_status_update(supervisor_agent_id)
--> 420     association_response = bedrock_agent_client.associate_agent_collaborator(
    421         agentId=supervisor_agent_id,
    422         agentVersion='DRAFT',
    423         agentDescriptor={
    424             'aliasArn': sub_agent['sub_agent_alias_arn']
    425         },
    426         collaboratorName=sub_agent['sub_agent_association_name'],
    427         collaborationInstruction=sub_agent['sub_agent_instruction'],
    428         relayConversationHistory=sub_agent['relay_conversation_history']
    429     )
    430     wait_agent_status_update(supervisor_agent_id)
    431     bedrock_agent_client.prepare_agent(
    432         agentId=supervisor_agent_id
    433     )

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/botocore/client.py:569, in ClientCreator._create_api_method.<locals>._api_call(self, *args, **kwargs)
    565     raise TypeError(
    566         f\"{py_operation_name}() only accepts keyword arguments.\"
    567     )
    568 # The \"self\" in this scope is referring to the BaseClient.
--> 569 return self._make_api_call(operation_name, kwargs)

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/botocore/client.py:1023, in BaseClient._make_api_call(self, operation_name, api_params)
   1019     error_code = error_info.get(\"QueryErrorCode\") or error_info.get(
   1020         \"Code\"
   1021     )
   1022     error_class = self.exceptions.from_code(error_code)
-> 1023     raise error_class(parsed_response, operation_name)
   1024 else:
   1025     return parsed_response

ValidationException: An error occurred (ValidationException) when calling the AssociateAgentCollaborator operation: 1 validation error detected: Value 'arn:aws:bedrock:us-west-2:061051234909:agent/1XLLTBIRCF' at 'agentDescriptor.aliasArn' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}"
}

I feel it will be helpful, if there is more detailed steps on how to run this poc. Because there are many errors while running it, many might face issues while implementing it. So, please have a look at it.
If you need any help, I am happy to contribute to this.


Flesh out the Gate Modifiers section

Add a description of the CONTROLLED, DAGGER, and FORKED gate modifiers.
This is a first draft. Posting here for feedback before starting on the DAGGER-for-circuits section.
TODO:

[ ] DAGGER for circuits
[ ] Check grammar to see if anything needs updating

Ping @stylewarning since I'm not sure if anyone gets review notifications about this repo.

@stylewarning Excellent feeback, thanks. Will update these after :taco: lunch :taco:.

Latest commit adds a Circuits section + preliminaries for writing the Circuit Modifiers section, which is still T.B.D.

Thanks for the feedback. My current plan is to try and get rigetti/quilc#329 done and merged, and then circle back to this.  Maybe I'm doing it backwards and should get the spec clear first, but I think it will be easier to debug and get review feedback on the quilc PR where there are test cases to verify expected behavior.  Once there is consensus that quilc is behaving as expected, I'll come back to update the spec here.

The latest commit updates grammar/Quil.g4 based on the current version of _parser/Quil.g4 in the pyquil repo. I specifically did not include any grammar changes related to the DEFGATE ... AS .. syntax, in order to avoid merge conflicts with @notmgsk changes in #8.


[6.0] Invalidate manifest cache when -Xbuild-tools-swiftc changes

Cherry-pick of https://github.com/swiftlang/swift-package-manager/pull/7760
Explanation: The manifest cache key should take into account flags passed to -Xbuild-tools-swiftc, but it didn't. so SwiftPM did not re-evaluate manifests even after changing -Xbuild-tools-swiftc. Fix the incorrect cache by hashing those extra flags into manifest cache key.
Scope: Affects only when -Xbuild-tools-swiftc is used.
Risk: low due to isolated less used option
Testing: Added a new test case to cover the senario
Issue: N/A
Reviewer: @xedin

@swift-ci test


Feature request: add test release option

It would be great also to be able to test the release from the UI instead of running the helm test ... command

Thanks for the suggestion!

@undera Can you please assign this to me?

@hdm23061993 Can this be closed?

I guess the corresponding 1.0 change PR is also needed

#178 was created on top of v0.3.1
Need to create a new PR for v1.0.0
The same was finalized on the original PR

@undera Please help review
Will port to be compatible with release v1.0.0 once this is merged

Implemented as part of 1.0