[FIX] allow Accelerator to detect distributed type from the "LOCAL_RANK" env variable for XPU

What does this PR do?
Inspired by the newly added test test_fsdp.py, I found that Accelerator's default distributed type is NO on XPU with the following approach, while on NV GPU it is FSDP:
$ export ACCELERATE_USE_FSDP="true"
$ export MASTER_ADDR="localhost"
$ export MASTER_PORT="10999"
$ export RANK="0"
$ export LOCAL_RANK="0"
$ export WORLD_SIZE="1"
$ python
>>> from accelerate.accelerator import Accelerator
>>> accelerator = Accelerator()
>>> accelerator.state.distributed_type
<DistributedType.NO: 'NO'>
## on NV GPU
>>> accelerator.state.distributed_type
<DistributedType.FSDP: 'FSDP'>

The reason lies at this  line: currently, MUTLI_XPU/MULTI_CPU is detected by WORLD_SIZE, while on NPU or GPU, it is detected by LOCAL_RANK as shown here.
To be safe, I add an "or" condition to fix this issue instead of doing refactoring for the entire code block. After the fix, the behavior on XPU aligns with that on GPU and the test_mixed_precision unit test in the test_fsdp.py can run through.
Pls have a review, thx! @muellerzr

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@faaany can you rebase from main for us? This is to help ensure the tests are fine/passing :)

@muellerzr  pls help merge, thx! (heart)


Update CARBALL_VERSION

:white_check_mark: Build carball 0.6.108-mcauagin completed (commit https://github.com/SaltieRL/carball/commit/616e60f2ff by @Sciguymjm)

:white_check_mark: Build carball 0.6.108-mcauagin completed (commit https://github.com/SaltieRL/carball/commit/616e60f2ff by @Sciguymjm)

:white_check_mark: Build carball 0.6.109-vetpdmus completed (commit https://github.com/SaltieRL/carball/commit/511cf8ea1c by @Sciguymjm)

:white_check_mark: Build carball 0.6.109-vetpdmus completed (commit https://github.com/SaltieRL/carball/commit/511cf8ea1c by @Sciguymjm)


How to build a wasmtime binary that supports memory64 feature?

Hi, I download the release binary, seems it doesn't enable memory64 by default, my running result:
./wasmtime test.wasm
Error: failed to parse WebAssembly module

Caused by:
        Invalid input WebAssembly code at offset 440: memory64 must be enabled for 64-bit memories

I really appreciate it if someone could help me with how to build a wasmtime that could run memory64 wasm file. And if I enable memory64, can I still run memory32 wasm file?

Try wasmtime -W memory64=y test.wasm.

Yes memory64 support is not a compile-time feature but a runtime feature, so @bjorn3's suggestion should work, but I'll hold off on closing this until @BenSunWhiteBoard you confirm it works for you

memory64 support for wasm is not specified at this time and it's not clear to me that there's an "obvious" design of how to implement it. That PR is one option but isn't necessarily the only one. In that sense it's hard to say what a memory64 wasi would take effort-wise because to me it's not clear to me what the work will be

Thanks for your kind reply! I have no further questions


Question: Reloaded event trigger

I have a global script where i initialize each grid and have the reloadstart, reloadend and reloadfail events.  Now i have a page with a grid on it and a empty-data div. When there's no data i do not render the MvcGrid but instead i render the empty-data div with a button to create a first item.
I have a sidebar in which i load content true ajax. In the above case i will load a form with a textbox and a save button. As soon i start typing in my textbox i see in the browsers developerstools a js error:
Grid element was not specified.
This means that somehow my typing in the textbox triggers MvcGrid.
When i have already items and thus MvcGrid is rendered, and i create a new item in my sidebar loaded content, i can see that the reloaded event get's triggered when i start typing in my textbox.
Is there a way to prevent this? Or why is this triggering the reloaded event?
Thank you

It should be visible from the stack trace who invoked the grid constructor.
Or check the event listeners on the textbox, maybe some lose event handler is initializing grid.

Yes you are totally right. I have found an on keyup function for the global search input which get triggerd. So i will look at that function again. Thank you for your support


Cannot submit image posts with 7.6 onwards

Describe the Bug
My Discord bot happily posts image submissions with asyncpraw 7.5.0, but in 7.6.0 onwards it does not work.
Desired Result
An image submission
Relevant Logs
Traceback (most recent call last):
      File "C:\Users\jon\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
        await item.callback(interaction)
      File [...] line 1939, in callback
        image_post = await rfcoc.submit_image(
      File "C:\Users\jon\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpraw\util\deprecate_args.py", line 51, in wrapped
        return await _wrapper(*args, **kwargs)
      File "C:\Users\jon\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpraw\models\reddit\subreddit.py", line 1330, in submit_image
        image_url, websocket_url = await self._upload_media(
      File "C:\Users\jon\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpraw\models\reddit\subreddit.py", line 763, in _upload_media
        response = await self._read_and_post_media(media_path, upload_url, upload_data)
      File "C:\Users\jon\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpraw\models\reddit\subreddit.py", line 705, in _read_and_post_media
        response = await self._reddit._core._requestor._http.post(
      File "C:\Users\jon\AppData\Local\Programs\Python\Python310\lib\site-packages\aiohttp\client.py", line 950, in post
        self._request(hdrs.METH_POST, url, data=data, **kwargs)
    TypeError: ClientSession._request() got an unexpected keyword argument 'files'

Code to reproduce the bug
rfcoc = await reddit.subreddit('fcoc')
image_post = await rfcoc.submit_image(title=self.trip.reddit_header,image_path=self.trip.reddit_img,flair_id=flair_departure,timeout=10)

My code example does not include the Reddit() initialization to prevent credential leakage.
Yes
This code has previously worked as intended.
Yes
Operating System/Environment
Debian 10
Python Version
Python 10
Async PRAW Version
7.6
Asyncprawcore Version
2.3
Anything else?
Neither 7.6 nor 7.6.1 works but 7.5 does.

Will a hotfix (7.6.2) not be released soon to fix issues like this?

My apologies, I thought I made a release for this! I'll do that right now.


syntastic balloon_eval

Hi
Sorry this potential could be silly question, but does balloon_eval work in terminal ?
I was reading http://vimdoc.sourceforge.net/htmldoc/debugger.html#balloon-eval but doesn't mention anything about gvim ro vim in terminal.
I was trying to install it with brew reinstall vim --with-balloon_eval but it will not install and gives me no errors.
Thanks

does balloon_eval work in terminal ?

No, balloons are tooltips implemented and handled by GUIs, not by Vim itself.  This is mentioned in :h +balloon_eval.


Support for the Thai language.

We have implemented this library in our product and it works well only thing we are missing is the Thai language support. Is it possible to add this in the future?

hi @stefanvucic , added in https://github.com/philfung/add-to-homescreen/commit/57ecd1ce539179f294cf69ac71d6c8a2a23e6028 .
Can you please:

check that the Thai language is correct (i just used GPT to do this) and send a pull request with correction if needed?
appreciate if you can give the repo a star!!

That should be it. Thanks for the quick response.

The translation looks fine. Thanks for the quick response.
I tried to test it but looks like Thai is not available in version 2.3 and version 2.4 is not available yet. Can you please let me know when the new version with the Thai language is available?

hello @stefanvucic 2.4 w/thai is now available.  sorry for delay
<EMAIL_ADDRESS><EMAIL_ADDRESS>


[MB-7520] Services counseling move queue skeleton

Description
This PR creates a new temporary route counseling/queue to display the service counselor user with a queue of moves in the Needs Service Counseling and Service Counseling Completed statuses.
The work to create a distinctive Service Counselor user role will not be complete until later in the slice so for now any TOO or TIO officer user should be able to access the services counseling queue by going directly to the URL.
By default the services counseling queue will load only those moves in the Needs Service Counseling status, sorted by oldest submitted at date.  If you select Service Counseling Completed from the statuses dropdown any moves in that status will become visible as well.
Things that are not currently implemented in this story:

Filtering by exact Requested Move Date or Submitted At Date
Sorting by Requested Move Date

Requested Move Date displays the earliest requested pickup date of the move's shipments.  Filtering this would be more straightforward but I saw there was a story to further implement this.  However sorting would potentially require converting the order fetcher code to a custom SQL query.  Currently we're pulling out the earliest date in the payload not doing a min() calculation using Pop.
Reviewer Notes
I decided to extend the existing order fetcher service and only add a new counseling queue handler because it is so similar to the TOO move queue.  I don't think splitting them makes sense at this moment and it helped us move faster to get this work done.  It does make the QueueMoves swagger payload serve a bit of a dual purpose though.
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make db_dev_e2e_populate
make server_run
make office_client_run

Login as a TOO or TIO office user
In the URL bar navigate to the page http://officelocal:3000/counseling/queue
A single devseed move should be visible in the queue with the status Needs Service Counseling
Clicking on the status filter and selecting Service Counseling Complete will reveal a second move in that status

You can also use the USMC TXO user to test that the service counseling queue would work for Marine Corps moves.
Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

:warning:

Files located in legacy directories (src/shared or src/scenes) have
been edited. Are you sure you don’t want to also relocate them to the new file structure?
View the frontend file org ADR for more information

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against b05950d0b6d9a617f17688bf512e6aea6167f7a5

Can we make Move Code sentence case?
Also for status, Needs counseling should be selected by default. But when I open the queue then click on the filter, nothing is selected even though I see moves in that status.

Yep I will fix the sentence case.
Needs counseling is applied by default but yes it's not visibly checked.  That may be too much work to tack on supporting default applied filters in this PR but seems like something we can split out.  We have default sort ordering but have never done default filters to this point.

Oh, and destination duty station should be a dropdown.

@amanda5iu That would be a gigantic dropdown with 1092 choices, I don't think we have that anywhere else. We only have the duty station search inputs on the customer side and in the edit orders form.  Are you thinking of the react-uswds ComboBox or a vanilla dropdown?

Oh, and destination duty station should be a dropdown.

@amanda5iu That would be a gigantic dropdown with 1092 choices, I don't think we have that anywhere else. Or you wanted it to be a dropdown of only dynamic choices for moves in the services counseling queue? We only have the duty station search inputs on the customer side and in the edit orders form. Are you thinking of the react-uswds ComboBox or a vanilla dropdown?

Let's not worry about addressing this being a drop down now. I think that's a bit out of scope for this story. We or another team will wind up taking another pass at this queue later.

Can we make Move Code sentence case?
Also for status, Needs counseling should be selected by default. But when I open the queue then click on the filter, nothing is selected even though I see moves in that status.

@amanda5iu
Yep I will fix the sentence case.
Needs counseling is applied by default but yes it's not visibly checked. That may be too much work to tack on supporting default applied filters in this PR but seems like something we can split out. We have default sort ordering but have never done default filters to this point.

All good! I couldn't remember whether we'd done that in the past.


542 xarray

See issue #542
Additional bug fixing and minor improvements
Unfortunately, I created this branch from 512_sarus and not from main, if you wonder why there are so many commits.

@kenfus is it okay to remove guess_beam_parameters in this PR? I removed it because it never worked. If you have a good reason to keep it and ensure that it works, I'll happily add the function to the module again.

An update, with pandas >=2, the following FutureWarning occured:
/home/lukas/miniconda3/envs/karabo_dev_env/lib/python3.9/site-packages/ska_sdp_datamodels/visibility/vis_model.py:74: FutureWarning: the `pandas.MultiIndex` object(s) passed as 'baselines' coordinate(s) or data variable(s) will no longer be implicitly promoted and wrapped into multiple indexed coordinates in the future (i.e., one coordinate for each multi-index level + one dimension coordinate). If you want to keep this behavior, you need to first wrap it explicitly using `mindex_coords = xarray.Coordinates.from_pandas_multiindex(mindex_obj, 'dim')` and pass it as coordinates, e.g., `xarray.Dataset(coords=mindex_coords)`, `dataset.assign_coords(mindex_coords)` or `dataarray.assign_coords(mindex_coords)`.
  super().__init__(data_vars, coords=coords, attrs=attrs)

I also removed the build-string fixations, because they prevent updates on dependency-constraints. Therefore, I introduces the following instructions to the README of the Feedstock & triggered the according builds there.
Updating an already existing Wheel: It may happen that an update of a dependency (direct or transversal) introduces a breaking change in a future release. Then, the current constraints of an existing conda-wheel would be outdated an will most likely result in a broken environment. To prevent this, updating the according meta.yaml and increase the build-nr is not enough, because the solver doesn't just consider the largest build-numbers of conda-wheels. So, to fix this for current and also older releases, you have to relabel oudated conda-wheels to legacy. Also do a comment in the meta.yaml, why you did constrain the dependency. This makes future builds where the constraints may have to be reconsidered way easier. It was already mentioned in this paragraph, but don't forget to increase the build-number.

@kenfus is it okay to remove guess_beam_parameters in this PR? I removed it because it never worked. If you have a good reason to keep it and ensure that it works, I'll happily add the function to the module again.

I rather not. This was requested by @rohitcbscient and it also works in the current example of the source_detection.ipynb.


Serve Gzipped assets if they exist

If a client requests an asset with Accept-Encoding: gzip, Chaos should serve a gzipped version of the asset if one exists. Right now Chaos ignores the heading and always serves the uncompressed version.
It appears that Jetty supports serving gzipped assets by calling ResourceHandler.setMinGzipLength with a value greater than 0. "1" seems like a reasonable value since every other value is equally arbitrary.
This is where the change looks like it should happen: https://github.com/mesosphere/chaos/blob/3a0e435121a51d094923ae1750085d71e346a03b/src/main/scala/mesosphere/chaos/http/HttpModule.scala#L88
Edit: The above example was to the wrong "ResourceHandler". Jetty handles Gzip compression with its Gzip Filter.

Very old issue. Closing.


Allow changing executable_name for dbshell management command

Hello,
i like to use https://github.com/dbcli/pgcli and i though it would be nice to use it with the django admin command dbshell, as it sets up the connection nicely from settings.
i have created this ticket, but then i also realized that this is probably better suited for this project. https://code.djangoproject.com/ticket/31458
would there be in interest in a pull request against django-extensions to implement drop-in replacements for dbshell before i sink any more time into it?

Sounds like dbshell_plus is ready to be born 👍
I would love to merge that PR !


New package: SyncBarriers v0.1.0

Registering package: SyncBarriers
Repository: https://github.com/tkf/SyncBarriers.jl
Created by: @tkf
Version: v0.1.0
Commit: 324149d1601edd5db0a18d184a1c8746cebcd4d9
Reviewed by: @tkf
Reference: https://github.com/tkf/SyncBarriers.jl/commit/324149d1601edd5db0a18d184a1c8746cebcd4d9#commitcomment-52402748

https://github.com/JuliaRegistries/General/pull/38703 can be closed if/when this is accepted
[noblock]


[Scheduled Maintenance] Smart'Gic infrastructure will be down

Additional context
Maintenance from the electricity distribution company.

Done.
RAID controller's battery has been changed as well.


Feat: Import calendar data from Google Calendar

Follow instructions to implement https://www.gatsbyjs.com/plugins/gatsby-source-google-calendar/?=calendar

[x] Install plugin
[x] Include the plugin in gatsby-config.js
[x] Authorize with Google
[ ] Assess calendars and events in your site
[ ] Troubleshoot & test

Getting an error:
"gatsby-source-google-calendar" threw an error while running the sourceNodes lifecycle:

Not Found

  226 |   const calendar = google.calendar({version: 'v3', auth});
  227 |   if (calendarIds.length) {
> 228 |     return await Promise.all(calendarIds.map(async calendarId => (await calendar.calendarList.get({
      |                                                                   ^
  229 |       calendarId
  230 |     })).data));
  231 |   }

File: node_modules/gatsby-source-google-calendar/gatsby-node.js:228:67

  Error: Not Found

  - gaxios.ts:158 Gaxios._request
    [woc-gatsby]/[gaxios]/src/gaxios.ts:158:15

  - task_queues.js:93 processTicksAndRejections
    internal/process/task_queues.js:93:5

  - oauth2client.js:368 OAuth2Client.requestAsync
    [woc-gatsby]/[google-auth-library]/build/src/auth/oauth2client.js:368:18

  - gatsby-node.js:228
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:228:67

  - async Promise.all

  - gatsby-node.js:228 getCalendars
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:228:12

  - gatsby-node.js:78 Object.exports.sourceNodes
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:78:21

  - api-runner-node.js:430 runAPI
    [woc-gatsby]/[gatsby]/src/utils/api-runner-node.js:430:16

warn The gatsby-source-google-calendar plugin has generated no Gatsby nodes. Do you need it?
success Checking for changed pages - 0.002s
success source and transform nodes - 0.891s
success building schema - 1.330s
success createPages - 0.091s
success createPagesStatefully - 0.154s
info Total nodes: 84, SitePage nodes: 10 (use --verbose for breakdown)
success Checking for changed pages - 0.002s
success update schema - 0.238s
success write out redirect data - 0.003s
success Build manifest and related icons - 0.092s
success onPostBootstrap - 0.104s
info bootstrap finished - 9.577s
success onPreExtractQueries - 0.002s
success extract queries from components - 2.981s
success write out requires - 0.007s
success run page queries - 0.020s - 1/1 49.13/s
success Caching HTML renderer compilation - 0.138s

You can now view gatsby-starter-tailwind in the browser.

  http://localhost:8000/

View GraphiQL, an in-browser IDE, to explore your site's data and schema

  http://localhost:8000/___graphql

Note that the development build is not optimized.
To create a production build, use gatsby build

success Building development bundle - 5.174s
success Writing page-data.json files to public directory - 0.165s - 3/6 36.42/s
Restarting function watcher due to change to "/Users/sethbrown/Sites/woc-gatsby/.env"
success Re-building functions

^C%
➜  woc-gatsby git:(main) ✗ gatsby develop
success open and validate gatsby-configs, load plugins - 3.557s
success onPreInit - 0.025s
success initialize cache - 0.042s
success copy gatsby files - 0.144s
success Compiling Gatsby Functions - 0.431s
info [sanity] Fetching remote GraphQL schema
info [sanity] Transforming to Gatsby-compatible GraphQL SDL
info [sanity] Stitching GraphQL schemas from SDL
success onPreBootstrap - 0.842s
success createSchemaCustomization - 0.015s
info [sanity] Fetching export stream for dataset
info [sanity] Watch mode enabled, starting a listener
warn [sanity] Document "084c8da1-69c0-4f04-8390-4572189d4351" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "173a76f8-ffc3-4d62-a576-3bae7989dbe3" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "29e25986-252d-49cf-ad48-87653944d5b4" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "4d556698-fc3c-413b-9167-2f8df2e67613" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "6fbcfd54-8c24-4542-af09-32b2947fbbe4" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "df0aa97d-a0ab-43a1-bdcc-791ea8b590a4" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "f2406127-689c-4d8b-948a-f7c1a0177289" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
info [sanity] Done! Exported 42 documents.

 ERROR #11321  PLUGIN

"gatsby-source-google-calendar" threw an error while running the sourceNodes lifecycle:

Invalid Credentials

  226 |   const calendar = google.calendar({version: 'v3', auth});
  227 |   if (calendarIds.length) {
> 228 |     return await Promise.all(calendarIds.map(async calendarId => (await calendar.calendarList.get({
      |                                                                   ^
  229 |       calendarId
  230 |     })).data));
  231 |   }

File: node_modules/gatsby-source-google-calendar/gatsby-node.js:228:67

  Error: Invalid Credentials

  - gaxios.ts:158 Gaxios._request
    [woc-gatsby]/[gaxios]/src/gaxios.ts:158:15

  - task_queues.js:93 processTicksAndRejections
    internal/process/task_queues.js:93:5

  - oauth2client.js:368 OAuth2Client.requestAsync
    [woc-gatsby]/[google-auth-library]/build/src/auth/oauth2client.js:368:18

  - gatsby-node.js:228
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:228:67

  - async Promise.all

  - gatsby-node.js:228 getCalendars
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:228:12

  - gatsby-node.js:78 Object.exports.sourceNodes
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:78:21

  - api-runner-node.js:430 runAPI
    [woc-gatsby]/[gatsby]/src/utils/api-runner-node.js:430:16

warn The gatsby-source-google-calendar plugin has generated no Gatsby nodes. Do you need it?
success Checking for changed pages - 0.002s
success source and transform nodes - 0.905s
success building schema - 1.096s
success createPages - 0.068s
success createPagesStatefully - 0.133s
info Total nodes: 84, SitePage nodes: 10 (use --verbose for breakdown)
success Checking for changed pages - 0.002s
success update schema - 0.202s
success write out redirect data - 0.002s
success Build manifest and related icons - 0.076s
success onPostBootstrap - 0.085s
info bootstrap finished - 10.513s
success onPreExtractQueries - 0.001s
success extract queries from components - 2.294s
success write out requires - 0.009s
success run page queries - 0.019s - 1/1 52.20/s
success Caching HTML renderer compilation - 0.147s

You can now view gatsby-starter-tailwind in the browser.

  http://localhost:8000/

View GraphiQL, an in-browser IDE, to explore your site's data and schema

  http://localhost:8000/___graphql

Note that the development build is not optimized.
To create a production build, use gatsby build

success Building development bundle - 5.376s
success Writing page-data.json files to public directory - 0.137s - 3/6 43.86/s
info
(Plugin gatsby-source-google-calendar)
Successfully authorized site for Google Calendar API.
Store the following values in your .env files then restart gatsby develop:

GOOGLE_ACCESS_TOKEN=ya29.a0ARrdaM90_Qh0aLovsOGJ5e6sEJAJcc1nVVKBSFfaFcRW_9wb7rM98Rkt5yXzrZ6Rdn66hDguCE9RWS3SGJmWs0Wi22rrzWNMXhOh7k6qYIz1J8FLtLb_bKoS103SwW5DP9KUStCeY-S2bdg2fUBOvUu_G_Du
GOOGLE_REFRESH_TOKEN=undefined

Important: Ensure there are no line breaks when copying the values.

Restarting function watcher due to change to "/Users/sethbrown/Sites/woc-gatsby/.env"
success Re-building functions
Restarting function watcher due to change to "/Users/sethbrown/Sites/woc-gatsby/.env"
success Re-building functions
Restarting function watcher due to change to "/Users/sethbrown/Sites/woc-gatsby/.env"
success Re-building functions

^C%
➜  woc-gatsby git:(main) ✗ gatsby develop
success open and validate gatsby-configs, load plugins - 3.758s
success onPreInit - 0.026s
success initialize cache - 0.067s
success copy gatsby files - 0.195s
success Compiling Gatsby Functions - 0.459s
info [sanity] Fetching remote GraphQL schema
info [sanity] Transforming to Gatsby-compatible GraphQL SDL
info [sanity] Stitching GraphQL schemas from SDL
success onPreBootstrap - 0.838s
success createSchemaCustomization - 0.014s
info [sanity] Fetching export stream for dataset
info [sanity] Watch mode enabled, starting a listener
warn [sanity] Document "084c8da1-69c0-4f04-8390-4572189d4351" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "173a76f8-ffc3-4d62-a576-3bae7989dbe3" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "29e25986-252d-49cf-ad48-87653944d5b4" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "4d556698-fc3c-413b-9167-2f8df2e67613" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "6fbcfd54-8c24-4542-af09-32b2947fbbe4" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "df0aa97d-a0ab-43a1-bdcc-791ea8b590a4" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
warn [sanity] Document "f2406127-689c-4d8b-948a-f7c1a0177289" has type gallery (SanityGallery), which is not declared in the GraphQL schema. Make sure you run "graphql deploy". Skipping document.
info [sanity] Done! Exported 42 documents.

 ERROR #11321  PLUGIN

"gatsby-source-google-calendar" threw an error while running the sourceNodes lifecycle:

Not Found

  226 |   const calendar = google.calendar({version: 'v3', auth});
  227 |   if (calendarIds.length) {
> 228 |     return await Promise.all(calendarIds.map(async calendarId => (await calendar.calendarList.get({
      |                                                                   ^
  229 |       calendarId
  230 |     })).data));
  231 |   }

File: node_modules/gatsby-source-google-calendar/gatsby-node.js:228:67

  Error: Not Found

  - gaxios.ts:158 Gaxios._request
    [woc-gatsby]/[gaxios]/src/gaxios.ts:158:15

  - task_queues.js:93 processTicksAndRejections
    internal/process/task_queues.js:93:5

  - oauth2client.js:368 OAuth2Client.requestAsync
    [woc-gatsby]/[google-auth-library]/build/src/auth/oauth2client.js:368:18

  - gatsby-node.js:228
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:228:67

  - async Promise.all

  - gatsby-node.js:228 getCalendars
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:228:12

  - gatsby-node.js:78 Object.exports.sourceNodes
    [woc-gatsby]/[gatsby-source-google-calendar]/gatsby-node.js:78:21

  - api-runner-node.js:430 runAPI
    [woc-gatsby]/[gatsby]/src/utils/api-runner-node.js:430:16

warn The gatsby-source-google-calendar plugin has generated no Gatsby nodes. Do you need it?

Apparently invalid_grant errors with Google are notorious. https://blog.timekit.io/google-oauth-invalid-grant-nightmare-and-how-to-fix-it-9f4efaf1da35#.eqa5iwbkt


Accessibility: MAC: VoiceOver: MAS3.3.1: VO is not announcing about "Error Popup" obtained while changing working platfrom instead it sets focus on "OK" button reads about it.

Steps to Reproduce

Launch Xamarin Workbook application-> Select Mac platform and create a new workbook.
Turn On the VoiceOver.
Navigate to "Working Platform (Environment)" dropdown present in the tool bar and change the platform (From Mac full to Console (.NET Core) ) which throws "Error Popup" i.e. (Error trying to inspect remote view , Index was outside the bounds of the array).
Observe the VO behaviour

Expected Behavior
VO Should announce about Error description. The VoiceOver should read the error alert also, without hitting on any keys.
Actual Behavior
Once the popup appears, VO sets focus on OK button and reads as OK button.
Note:  Although if user hits on Control+option+up arrow, the VoiceOver is announcing the error alert.
User Impact:
User won't be able to know that error popup is popped up until its automatically being read by the  VoiceOver.
Note: The alert text is having two lines only, so it would be easier for the VoiceOver user if the error alert text is read by the VoiceOver.
Environment
MAC: macOS High Sierra [10.13.4]
Workbook - 1.4 (master/b3f92f9)
Log File
VO9_ErrorPopup_Console.zip

Please add the following labels to this bug:
A11yMAS
Accessibility
MAS3.3.1
Xamarin-Workbook-MAC
Wipro

Exemption Approved - 1823


Individual colors, 4 improvements

The option to show seaparet colors, should be called "Individual colors"
When using individual colors, don't show a color legend at all, just the drop down.
Use a more joyful color-schema: which goes across happy colors like ours!
Don't show the geo-id and geo name as options under color drop down.

Add 'individual' option in dropdown
Think of how to 'dynamically' hide what is now geo-id and geo-name (maybe according to the definition of space).

in vizabi-gapminder.js a hook has "allow" field, we can add something like allow --> names --> ["!geo.name"] thus not allowing names to appear in the list

regarding geo-id we can figure out from entities --> dim that this is a key for individual colors and rename it

Happy colors update:


dns: [fix] cares resolver should respect cname ttl

Commit Message: dns: [fix] cares resolver should respect cname ttl
Additional Description: cares currently only uses node ttl in the DNS response which completely ignores the cname ttl. In case cname has a lower ttl, the updates would not be applied. Thus to always ensure the records are updated, we use minimum ttl of cname and node.
Risk Level: Medium
Testing: Modified unit tests. Functional testing done.
Docs Changes:  N/A
Release Notes: N/A
Platform Specific Features: N/A
Fixes #28925
[Optional Runtime guard:]

/assign @botengyao

@botengyao i think this waiting on signoff
/wait-any

/wait-any

Thanks @botengyao for reviewing, really appreciate the quick review. Have addressed the comments

/assign-from @envoyproxy/senior-maintainers

/retest

@zuercher @botengyao  thanks, really appreciate you taking time to review this.
I was wondering who to ping regarding merge. May you be able to help me here please


Lzilioli improvements

See https://github.com/kaffarell/obsidian-tesseract-ocr/issues/6#issue-2025131314

Thanks for the PR! I left you some comments inline...

Hi @kaffarell im not seeing comments anywhere (and have no emails about them) can you point me in their direction?

Oops, github now requires me to approve my own review :/
Should be visible now :)


How to add gesture in full screen mode?

my code:
GestureDetector(
      onPanEnd: (details) {
          controller.disableFullScreen(context);
      },
      child: PodVideoPlayer(
          matchFrameAspectRatioToVideo: true,
          controller: controller,
          alwaysShowProgressBar: false,
      ),
),

But this code only work on Portrait mode

@MikeChen1109 Thanks for opening this issue...
Let me figure out some Way's to add gestures in full screen mode


Import errors

I've been trying to run the tool for a while now, and it seems I can't manage to run it effectively.
I managed to install the thing with git clone and pip install.

But I still can't find a way to run the tool.
──(kali㉿kali)-[/bin/TrustTrees]
└─$ trusttrees -h
Traceback (most recent call last):
  File "/usr/local/bin/trusttrees", line 5, in <module>
    from trusttrees.__main__ import main
  File "/usr/local/lib/python3.11/dist-packages/trusttrees/__main__.py", line 3, in <module>
    from .dns import enumerate_nameservers
  File "/usr/local/lib/python3.11/dist-packages/trusttrees/dns.py", line 14, in <module>
    from .utils import is_authoritative
  File "/usr/local/lib/python3.11/dist-packages/trusttrees/utils.py", line 9, in <module>
    from .registar_checking import is_domain_available
  File "/usr/local/lib/python3.11/dist-packages/trusttrees/registar_checking.py", line 5, in <module>
    import boto3
  File "/usr/local/lib/python3.11/dist-packages/boto3/__init__.py", line 16, in <module>
    from boto3.session import Session
  File "/usr/local/lib/python3.11/dist-packages/boto3/session.py", line 17, in <module>
    import botocore.session
  File "/usr/local/lib/python3.11/dist-packages/botocore/session.py", line 29, in <module>
    import botocore.configloader
  File "/usr/local/lib/python3.11/dist-packages/botocore/configloader.py", line 19, in <module>
    from botocore.compat import six
  File "/usr/local/lib/python3.11/dist-packages/botocore/compat.py", line 25, in <module>
    from botocore.exceptions import MD5UnavailableError
  File "/usr/local/lib/python3.11/dist-packages/botocore/exceptions.py", line 15, in <module>
    from botocore.vendored import requests
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/utils.py", line 26, in <module>
    from .compat import parse_http_list as _parse_list_header
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/compat.py", line 7, in <module>
    from .packages import chardet
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/packages/__init__.py", line 3, in <module>
    from . import urllib3
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/packages/urllib3/__init__.py", line 10, in <module>
    from .connectionpool import (
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/packages/urllib3/connectionpool.py", line 38, in <module>
    from .response import HTTPResponse
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/packages/urllib3/response.py", line 9, in <module>
    from ._collections import HTTPHeaderDict
  File "/usr/local/lib/python3.11/dist-packages/botocore/vendored/requests/packages/urllib3/_collections.py", line 1, in <module>
    from collections import Mapping, MutableMapping
ImportError: cannot import name 'Mapping' from 'collections' (/usr/lib/python3.11/collections/__init__.py)

I do have Python3 installed.
┌──(kali㉿kali)-[/bin/TrustTrees]
└─$ python --version
Python 3.11.2

┌──(kali㉿kali)-[/bin/TrustTrees]
└─$ trusttrees.py --target example.com
trusttrees.py: command not found

┌──(kali㉿kali)-[/bin/TrustTrees]
└─$ ./trusttrees.py --target example.com
zsh: no such file or directory: ./trusttrees.py

Am I using the right command to run the tool ?
So far, I've tried as guest and as root : trusttrees.py --target example.com, trusttrees --target example.com and ./trusttrees.py --target example.com but none is working...

The dependency list is no longer suitable for modern versions of python, you can update it like this (works as of today on Python 3.12)
requirements.txt
boto3==1.34.47
dnsimple==2.0.0
dnspython==2.6.1
pygraphviz==1.12
requests==2.31.0
tldextract==5.1.1
six==1.16.0
urllib3==2.2.1

Ran into the same issue. Try running the following:
pip3 install TrustTrees

# Upgrading packages to latest stable release
pip3 install requests boto3 botocore pygraphviz --upgrade

# The program should run now
trusttrees --help


Automate reaching the perfect gif size ratio with a setting.

I love this software, big thank you, it's the best.
Every time I make a gif, I'm looking for the bigger width / height possible without exceeding 5 MB. This way I can share it on forums and social networks with that limitation, while getting the best size, it's a fight between changing sizes and creating the gif lots of times.
I would like to contribute with the code to achieve this setting. I make lots of gifs and this is probably the most time consuming part of my ritual.
All suggestions, ideas or guidance are welcome!

I'm glad that you love it :)
Without encoding the file in the background, I don't see a way to predict the file size.

+1 on this feature
from my basic software understanding.
i would try to estimate based on recorded image stored in memory from application. and :
a. dig deeper into encoding software lib to find any estimation (if any)
b. make use of data size, options configuration informations as datasets and use it for machine learning to estimate file size. can either be served online or offline (but it will make the software much slower which we dont want)
just want to add that this software help me a lot in many situation. and really grateful for it :)


[Masthead]: searchNoRedirect prop no longer working in 1.30.0

Description
<Masthead searchNoRedirect>
It works correctly in 1.24.0 but no longer works in 1.30.0 upon pressing the Enter key while inside the search box. It does not block the default redirect action as it should and performs the redirect anyway. Using identical code. This breaks my application.
Component(s) impacted
Masthead
Browser
Chrome, Safari, Firefox, Microsoft Edge
Carbon for IBM.com version
1.30.0
Severity
Severity 2 = Aspects of design is broken, and impedes users in a significant way, but there is a way to complete their tasks. Affects major functionality, has a workaround.
Application/website
Redbooks
Package
@carbon/ibmdotcom-react
CodeSandbox example
https://codesandbox.io/s/github/carbon-design-system/carbon-for-ibm-dotcom/tree/main/packages/react/examples/codesandbox/components/Masthead?file=/src/App.js
Steps to reproduce the issue (if applicable)
Use component <Masthead searchNoRedirect />
Type a keyword into search box. Press ENTER. This should result in no action as the searchNoRedirect prop should be blocking the default redirect. Instead, it redirects.
Release date (if applicable)
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate issues

Hi, any idea when this will be released?


Update bealign to 0.20.1 on usegalaxy.org

This update includes built-in reference sequences for SARS-CoV-2 genes.

@galaxybot deploy this


use login tokens for interventions API access

What does this pull request do?
instead of using the client_credentials token for the interventions service calls, use the logged in user's token, which provides username details and roles to the downstream service.
What is the intent behind these changes?
this allows granular role management and user-authenticated HMPPS Auth API calls at the API layer. it also allows the interventions API to associate calls with logged in users.

Would this allow every user API access to the backend without the UI?

Summarising an "off github" discussion: I misunderstood what this does :)


Broadcasting ?

Imagine I have a histogram like this:
Hist(bin("x", 100, 0.0, 1.0), groupby("condition"))
and I have an array of x collected under condition="test". So I want to put these data into the histogram. To do that, I need to do something like this:
hist.fill(x=xarray, condition=["test"]*len(xarray))
I think it would be useful to adopt a simple "broadcasting" rule to allow this:
hist.fill(x=xarray, condition="test")

hist.fill(x=xarray, condition="'test'") (one more level of quoting) might already work. If not, it's related to the constants-handling bug (#23, I think).

No, that does not work and it generates this:
ValueError: array 'tt' has len 1 but other arrays have len 100
h = Hist(bin("a", 10, 0, 1), groupby("tt"))
h.fill(a=np.random.random((100,)), tt='"a"')
h.fill(a=np.random.random((100,)), tt='"b"')
h.stack("tt").area("a").to(canvas)

The ValueError you got was correct. The suggestion I have you was wrong. I meant to say
hist = Hist(bin("x", 100, 0.0, 1.0), groupby("'test'"))
hist.fill(x=xarray)

I put the single string in quotations in the wrong place. It's supposed to be a constant expression. Also, because of #23, I might need to fix constant expressions.
["test"]*len(xarray) would be very slow, but that's because it's creating a large Python list and converting it to a string-valued Numpy array before it ever enters histbook.

No, that is not the use case I meant.
I meant this:
h = Hist(bin("data", 10, 0, 1), groupby("condition"))
h.fill(data=np.random.random((100,)), condition="a")
h.fill(data=np.random.random((100,)), condition="b")
...

Real life example: I want to plot some distribution for a number of datasets. So I call fill() some number of times for dataset "a", then for dataset "b" and so on, and then I want to see stacked histogram with all the datasets together.
So I am not grouping by a constant. It is constant only for a single call to fill(). Next call to fill() will use another value.

I figured that out in the other issue. You want to use the Hist.group static method. (I'm trying to do all of this on a phone in a hotel room without wifi.)

I appreciate your help, Jim. Sorry you have to do this in such inhumane conditions :)
Maybe grouping would work too, but I got it figured out, implementing the "broadcasting" myself for now. Here is the fragment of real code which works:
h_all = Hist(hbin("NJets", 20, 0, 20), groupby("dataset"))

h_all_display = IPythonDisplay(
    h_all
        .stack("dataset")
        .area("NJets", width=400)
)

for dataset_name in Datasets[:5]:
    job = session.createJob(dataset_name, display=False)
    job.addHistogram(h_all, ["NJets", "dataset"], constants={"dataset":dataset_name})
    job.run()
    runtime = job.TFinish - job.TStart
    nevents = job.EventsProcessed
    nworkers = len(job.WorkerAddresses)
    h_all_display.update()
    print "%s: %d events processed using %d workers in %.1f seconds, %.2e events/second" % (
                    dataset_name, nevents, nworkers, runtime, float(nevents)/runtime)

I don't see the fill in this. (Maybe that happens remotely?)
One of the complaints about Histogrammar was that everything that appeared in a final plot had to come from a single dataset, but it's common to combine data from different Monte Carlo and data samples. It seemed unnatural to have to create new fields in the data that were piecewise constant to emulate what the physicists had in mind: bringing together data from different places.
So histbook has methods for adding information (like "group") in addition to removing information (like "select", "rebin", and "project").

Yes, the actual filling happens remotely and once in a while the Histbook histogram gets picked and shipped back and then cleared.
Here is the implementation of the broadcasting at the remote:
       ...
       # by this time my_dict contains "regular" data in ndarray's
       if my_dict:
                nitems = len(my_dict[my_dict.keys()[0]])
                for dn, dv in self.Constants.items():
                        my_dict[dn] = [dv]*nitems
        self.H.fill(**my_dict)

>>> from histbook import *
>>> h = Hist(bin("x", 5, 0, 5), groupby("condition"))
>>> h.pandas()
Empty DataFrame
Columns: [count(), err(count())]
Index: []
>>> h.fill(x=[1, 2, 3], condition="one")
>>> h.pandas()
                       count()  err(count())
condition x
one       [-inf, 0.0)      0.0           0.0
          [0.0, 1.0)       0.0           0.0
          [1.0, 2.0)       1.0           1.0
          [2.0, 3.0)       1.0           1.0
          [3.0, 4.0)       1.0           1.0
          [4.0, 5.0)       0.0           0.0
          [5.0, inf)       0.0           0.0
          {NaN}            0.0           0.0
>>> h.fill(x=[4, 5], condition="two")
>>> h.pandas()
                       count()  err(count())
condition x
one       [-inf, 0.0)      0.0           0.0
          [0.0, 1.0)       0.0           0.0
          [1.0, 2.0)       1.0           1.0
          [2.0, 3.0)       1.0           1.0
          [3.0, 4.0)       1.0           1.0
          [4.0, 5.0)       0.0           0.0
          [5.0, inf)       0.0           0.0
          {NaN}            0.0           0.0
two       [-inf, 0.0)      0.0           0.0
          [0.0, 1.0)       0.0           0.0
          [1.0, 2.0)       0.0           0.0
          [2.0, 3.0)       0.0           0.0
          [3.0, 4.0)       0.0           0.0
          [4.0, 5.0)       1.0           1.0
          [5.0, inf)       1.0           1.0
          {NaN}            0.0           0.0

Numerical values also get broadcasted:
>>> from histbook import *
>>> h = Hist(bin("x", 5, 0, 5), bin("y", 2, 0, 2, underflow=False, ove
rflow=False, nanflow=False))
>>> h.pandas()
                        count()  err(count())
x           y
[-inf, 0.0) [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[0.0, 1.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[1.0, 2.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[2.0, 3.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[3.0, 4.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[4.0, 5.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[5.0, inf)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
{NaN}       [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
>>> h.fill(x=[1, 2, 3], y=0)
>>> h.pandas()
                        count()  err(count())
x           y
[-inf, 0.0) [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[0.0, 1.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[1.0, 2.0)  [0.0, 1.0)      1.0           1.0
            [1.0, 2.0)      0.0           0.0
[2.0, 3.0)  [0.0, 1.0)      1.0           1.0
            [1.0, 2.0)      0.0           0.0
[3.0, 4.0)  [0.0, 1.0)      1.0           1.0
            [1.0, 2.0)      0.0           0.0
[4.0, 5.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[5.0, inf)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
{NaN}       [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
>>> h.fill(x=[4, 5], y=1)
>>> h.pandas()
                        count()  err(count())
x           y
[-inf, 0.0) [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[0.0, 1.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0
[1.0, 2.0)  [0.0, 1.0)      1.0           1.0
            [1.0, 2.0)      0.0           0.0
[2.0, 3.0)  [0.0, 1.0)      1.0           1.0
            [1.0, 2.0)      0.0           0.0
[3.0, 4.0)  [0.0, 1.0)      1.0           1.0
            [1.0, 2.0)      0.0           0.0
[4.0, 5.0)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      1.0           1.0
[5.0, inf)  [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      1.0           1.0
{NaN}       [0.0, 1.0)      0.0           0.0
            [1.0, 2.0)      0.0           0.0

I am trying to use broadcasting with groupby() and a string as the groupby axis value, and it is not working:
import histbook
from histbook import Hist, bin, groupby
import numpy as np

h = Hist(bin("NJets", 10, 0, 10), groupby("dataset"))
h.fill(dataset="dataset1", NJets=np.arange(100))

this fragment gives me a warning and an error:
/home/ivm/anaconda2/lib/python2.7/site-packages/numpy/core/numeric.py:301: FutureWarning: in the future, full(100, array('dataset1',
      dtype='|S8')) will return an array of dtype('S8')
  format(shape, fill_value, array(fill_value).dtype), FutureWarning)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-6c35a986016c> in <module>()
      4
      5 h = Hist(bin("NJets", 10, 0, 10), groupby("dataset"))
----> 6 h.fill(dataset="dataset1", NJets=np.arange(100))
      7
      8 h1 = Hist(bin("NJets", 10, 0, 10), bin("dataset", 100, 0, 100))

/home/ivm/anaconda2/lib/python2.7/site-packages/histbook-1.1.0-py2.7.egg/histbook/hist.pyc in fill(self, arrays, **more)
    574
    575             self._prefill()
--> 576             length = self._fill(arrays)
    577             self._postfill(arrays, length)
    578

/home/ivm/anaconda2/lib/python2.7/site-packages/histbook-1.1.0-py2.7.egg/histbook/hist.pyc in _fill(self, arrays)
    151                     array = numpy.array(array)
    152                 if array.shape == ():
--> 153                     array = numpy.full(length, array)
    154
    155                 if length != array.shape[0]:

/home/ivm/anaconda2/lib/python2.7/site-packages/numpy/core/numeric.pyc in full(shape, fill_value, dtype, order)
    300             "in the future, full({0}, {1!r}) will return an array of {2!r}".
    301             format(shape, fill_value, array(fill_value).dtype), FutureWarning)
--> 302     multiarray.copyto(a, fill_value, casting='unsafe')
    303     return a
    304

ValueError: could not convert string to float: dataset1

this works fine:
h1 = Hist(bin("NJets", 10, 0, 10), bin("dataset", 100, 0, 100))
h1.fill(dataset=13, NJets=np.arange(100))

my version is 1.2.0

Hmmm.
>>> from histbook import *
>>> import numpy as np
>>> h = Hist(bin("NJets", 10, 0, 10), groupby("dataset"))
>>> from histbook import *
>>> import numpy as np
>>> h = Hist(bin("NJets", 10, 0, 10), groupby("dataset"))

My version is 1.2.0 also. What's your Numpy version?
>>> histbook.__version__
'1.2.0'
>>> np.__version__
'1.14.4'

This might imply a higher minimum Numpy version: right now I say install_requires = ["numpy>=1.8.0"].

import numpy
numpy.version
'1.11.3'

I found Numpy 1.11.3 on lxplus and tried it there. Indeed:
>>> numpy.full(10, "hello")
/afs/cern.ch/user/p/pivarski/miniconda3/lib/python3.5/site-packages/numpy/core/numeric.py:301: FutureWarning: in the future, full(10, 'hello') will return an array of dtype('<U5')
  format(shape, fill_value, array(fill_value).dtype), FutureWarning)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/afs/cern.ch/user/p/pivarski/miniconda3/lib/python3.5/site-packages/numpy/core/numeric.py", line 302, in full
    multiarray.copyto(a, fill_value, casting='unsafe')
ValueError: could not convert string to float: 'hello'

I'll keep the Numpy requirement minimum where it is and put a work-around in this bit of code. I think this just affects everywhere numpy.full is called with a string argument.

I upgraded numpy to 1.14.5 and now the error is different:
import histbook
from histbook import Hist, bin, groupby
import numpy as np

print np.__version__

h = Hist(bin("NJets", 10, 0, 10), groupby("dataset"))
h.fill("dataset1", NJets=np.arange(100))

1.14.5
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-84a0ed9de926> in <module>()
      6
      7 h = Hist(bin("NJets", 10, 0, 10), groupby("dataset"))
----> 8 h.fill("dataset1", NJets=np.arange(100))
      9

/home/ivm/anaconda2/lib/python2.7/site-packages/histbook-1.2.0-py2.7.egg/histbook/hist.pyc in fill(self, arrays, **more)
    374
    375             self._prefill()
--> 376             length = self._fill(arrays)
    377             self._postfill(arrays, length)
    378

/home/ivm/anaconda2/lib/python2.7/site-packages/histbook-1.2.0-py2.7.egg/histbook/fill.pyc in _fill(self, arrays)
    118                 else:
    119                     try:
--> 120                         array = arrays[instruction.extern.value]
    121                     except KeyError:
    122                         if instruction.extern.value in histbook.expr.Expr.maybeconstants:

/home/ivm/anaconda2/lib/python2.7/site-packages/histbook-1.2.0-py2.7.egg/histbook/util/__init__.pyc in __getitem__(self, n)
     38             return self._two[n]    # and it has precedence
     39         else:
---> 40             return self._one[n]    # self._one might only have __getitem__

TypeError: string indices must be integers, not str

I just patched master so that it works as shown in my comment in Numpy 1.14.4 and 1.11.3.
But your problem is that you're missing a keyword argument:
h.fill("dataset1", NJets=np.arange(100))

instead of
h.fill(dataset="dataset1", NJets=np.arange(100))

It's trying to interpret the positional (non-keyword) argument as a dict of arrays, a Pandas DataFrame, or a Spark DataFrame. I wanted to be loose about it so that anything with df["column"] → array would work in that slot (i.e. duck typing). But if the "df" is a string, it applies square-bracket-string-close-square-bracket to what is actually a string, hence "string indices must be integers, not str."


1.7.0 Browser Version not working

I am trying to use the Brower version of TMI, but I'm unable to connect to the chat correctly as the script throws a connection error, being unable to check "isConnected"
Some investigation led to maybe find a scope issue in the tmi.js browser version at line 315 where the loop function seems to lose/or not be in the correct scope (bad assumptions here, I don't know much about JS).
And there is also a hug error spam about the "_typeof" function exceeding the maximum call stack size
Actual behaviour:
The script doesn't connect and starts with an error spam
Uncaught TypeError: Cannot read property '_isConnected' of undefined
    at Object.fn (tmi.js:320)
    at queue.next (tmi.js:2949)
    at queue.run (tmi.js:2934)
    at client.handleMessage (tmi.js:332)
    at tmi.js:1303
    at Array.forEach (<anonymous>)
    at client._onMessage (tmi.js:1301)
[00:23] info: Connecting to irc-ws.chat.twitch.tv on port 443..
[00:23] info: Sending authentication to server..
[00:23] info: Connected to server.
Uncaught TypeError: Cannot read property '_isConnected' of undefined at Object.fn (tmi.js:320)

Expected behaviour:
The scripts connects and handles chat messages and others events
[00:08] info: Connecting to irc-ws.chat.twitch.tv on port 443..
[00:08] info: Sending authentication to server..
[00:08] info: Connected to server.
[00:08] info: Executing command: JOIN #stuffmakerco

Error log:
Uncaught RangeError: Maximum call stack size exceeded  at _typeof (tmi.js:2273)
Uncaught TypeError: Cannot read property '_isConnected' of undefined
    at Object.fn (tmi.js:320)
    at queue.next (tmi.js:2949)
    at queue.run (tmi.js:2934)
    at client.handleMessage (tmi.js:332)
    at tmi.js:1303
    at Array.forEach (<anonymous>)
    at client._onMessage (tmi.js:1301)

Server configuration

Operating system: Window 10
tmi.js version: 1.7.0

See the release page for v1.7.1 or v1.7.1 for updated builds.


add option to use user-defined SQL table info

Currently, table information is gathered through SQLAlchemy as complete table DDL and a user-selected number of sample rows from each table. This PR adds the option to use user-defined table information instead of automatically collecting it. This will use the provided table information and fall back to the automatic gathering for tables that the user didn't provide information for.
Off the top of my head, there are a few cases where this can be quite useful:

The first n rows of a table are uninformative, or very similar to one another. In this case, hand-crafting example rows for a table such that they provide the good, diverse information can be very helpful. Another approach we can think about later is getting a random sample of n rows instead of the first n rows, but there are some performance considerations that need to be taken there. Even so, hand-crafting the sample rows is useful and can guarantee the model sees informative data.
The user doesn't want every column to be available to the model. This is not an elegant way to fulfill this specific need since the user would have to provide the table definition instead of a simple list of columns to include or ignore, but it does work for this purpose.
For the developers, this makes it a lot easier to compare/benchmark the performance of different prompting structures for providing table information in the prompt.

These are cases I've run into myself (particularly cases 1 and 3) and I've found these changes useful. Personally, I keep custom table info for a few tables in a yaml file for versioning and easy loading.
Definitely open to other opinions/approaches though!

makes sense to me


added the oci provider

added the Oracle Cloud Infrastructure provider to the project.

Assuming this changelog conflict gets merged, anything else need to be done to merge this?

Hi man,
You can leave it for now, I will fix the conflict and I need to update the
OCI stuff anyways.
I'll take care of it tomorrow, and thank you for all your work on this
plugin, my team and I use it all the time.
Thanks,
Mark.
On Tue, Mar 19, 2019 at 7:30 PM Joseph Anthony Pasquale Holsten <
<EMAIL_ADDRESS>wrote:

Assuming this changelog conflict gets merged, anything else need to be
done to merge this?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mauve/vscode-terraform/pull/152#issuecomment-474624259,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AkEappNDBkyirziAbDwVrzLYUKINMcFVks5vYXMpgaJpZM4aj2Ju
.

Hi,
I removed the change log file from the PR and updated the OCI provider data to the latest version.
Thanks,
Mark.

Thanks for your contribution, I have rebased and merged it outside of this PR (your name is still on the commit).
Will be released in a few minutes as 1.3.9


Download music stream from Amazon

It would be nice to be able to download the music here:
pierre@Rudloff:~$ youtube-dl "http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1001428681#" -v
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1001428681#', '-v']
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.7.3 - Linux-3.2.0-4-amd64-x86_64-with-debian-7.2
[debug] Proxy map: {}
[redirect] Following redirect to http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1001428681
WARNING: Falling back on generic information extractor.
[generic] feature.html?ie=UTF8&docId=1001428681: Downloading webpage
[generic] feature.html?ie=UTF8&docId=1001428681: Extracting information
ERROR: Unsupported URL: http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1001428681; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
Traceback (most recent call last):
  File "/usr/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 353, in extract_info
    ie_result = ie.extract(url)
  File "/usr/bin/youtube-dl/youtube_dl/extractor/common.py", line 117, in extract
    return self._real_extract(url)
  File "/usr/bin/youtube-dl/youtube_dl/extractor/generic.py", line 180, in _real_extract
    raise ExtractorError(u'Unsupported URL: %s' % url)
ExtractorError: Unsupported URL: http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1001428681; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

The music is now here: https://www.amazon.com/Lindsey-Stirling/dp/B00FMJJ064/ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=
But it still does not work:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'https://www.amazon.com/Lindsey-Stirling/dp/B00FMJJ064/ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=', u'-v']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.03.22
[debug] Python version 2.7.9 - Linux-3.16.0-4-amd64-x86_64-with-debian-8.7
[debug] exe versions: avconv 11.8-6, avprobe 11.8-6, rtmpdump 2.4
[debug] Proxy map: {}
[generic] ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=: Requesting header
WARNING: Could not send HEAD request to https://www.amazon.com/Lindsey-Stirling/dp/B00FMJJ064/ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=: HTTP Error 405: MethodNotAllowed
[generic] ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=: Downloading webpage
WARNING: Falling back on generic information extractor.
[generic] ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=: Extracting information
ERROR: Unsupported URL: https://www.amazon.com/Lindsey-Stirling/dp/B00FMJJ064/ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/generic.py", line 1790, in _real_extract
    doc = compat_etree_fromstring(webpage.encode('utf-8'))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/compat.py", line 2526, in compat_etree_fromstring
    doc = _XML(text, parser=etree.XMLParser(target=_TreeBuilder(element_factory=_element_factory)))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/compat.py", line 2515, in _XML
    parser.feed(text)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1642, in feed
    self._raiseerror(v)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
    raise err
ParseError: mismatched tag: line 26, column 2
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 761, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 428, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/generic.py", line 2653, in _real_extract
    raise UnsupportedError(url)
UnsupportedError: Unsupported URL: https://www.amazon.com/Lindsey-Stirling/dp/B00FMJJ064/ref=tmm_msc_swatch_0?_encoding=UTF8&qid=&sr=


Automatic creation of database users causing problems

When the agdc module is loaded, it triggers an attempt of creation of a user in the datacube database described in the module's config.  If the user did not already exist, the user is created and a password is stored.
When accessing the system from another platform with a different home directory (eg VDI and raijin do not share home folders), the password is not accessible, and a new db user account cannot be generated as the user already exists.
For read-only access to public data, the user could be configured to use no password.

The 'no password' would probably need to be implemented as a default password. I'm also hesitant about it because it will give us a more difficult migration when we do start caring about a users' identity (adding required authentication later and possibly breaking things).
Would this be an ok alternative?

Document for users the need to copy their existing pgpass onto new machines. This isn't too different to the previous need to copy the cube_user information to each of their home directories.
Improve the error message: for example, it could tell users that they already have an account, and to copy the existing ~/.pgpass.

I agree on both points. I don't believe its in its scope to build custom code to suit the "quirks" of one environment. Rather, code should be built to do "the right thing" with flexibility to allow it to be applied to different environments. A practical error message is always handy :), and in this case I think strikes the right balance for the environment in question.

Part of the problem is that we silently generate the password for new users and put it into .pgpass.
I'll make the module log that a password has been created and added to .pgpass to raise the awareness of the process.

@mpaget: Yeah, we're specifically keeping anything NCI-specific out of the core framework. This user-creation code is in the NCI modules, not in our Python (core) codebase. The Python codebase is agnostic to Postgres authentication configuration.


Tool for querying and viewing the event log

Based on the discussion on Gitter I'd like to discuss the design of a tool that would allow team members to query and view event logs for support issues, debugging and testing purposes.
Problem description
Event log payloads are not available directly by querying Cassandra or other storages since all event log payloads are serialized into binary blobs. Trying to make sense of these blobs without proper deserialization support becomes an exercise in frustration. With an hex editor you can discern some tidbits of information.
Open questions
Generic deserialization
Is there is a way to deserialize java serialization, proto buf or thrift into a human readable format without knowing anything about the data apart from the protocol before hand?
I'm not familiar enough with the formats to judge above, but I'm guessing it is not possible and that we need to have the data model available to deserialize with field labels visible.
Dekstop or web app
I'm leaning towards a desktop application, since it is very convenient to not rely on a server to be up to be able to troubleshoot. But if we cannot solve generic deserialization then a server application would be the most obvious choice.

Sounds interesting!
Re Dekstop or web app: a third possibility would be a cli, that could be run on every server.
Just to mention it: perhaps spark could be helpful for the query / analysis part.

@magro I haven't played around with spark much yet. But I assume it is because you can send closures easily separate the serialization/deserialization from the tooling. As for using a cli, I agree. Perhaps that is a good place to start.

+1 for cli
Boosts acceptance imo

Thank you guys for starting the discussion and your valuable input. Regardless whether we go for a desktop application, server application or CLI, I think the first step is having a read-only API that

abstracts over data stores (Cassandra, LevelDB, ...)
is system-schema-aware (DurableEvent)
is application-schema-agnostic i.e. serves the DurableEvent payload as blob (byte[] or whatever).

Event log inspection tools should use this API and together with application-specific de-serializers and renderers to display payloads to the user. A de-serializer converts a blob into a domain event object and a renderer creates a human readable representation. The API should be accessible remotely and also locally within a server process.
The current abstraction over data stores are event log actors (LeveldbEventLog and CassandraEventLog) that both support the EventsourcingProtocol (for message exchange between event-sourced actors and the event log) and the ReplicationProtocol.
The main difference between the current abstraction and the proposed API is that the event log actors internally de-serialize payloads which is unnecessary overhead when being used remotely (which requires an additional serialization and de-serialization step). This is currently also the case for event replication. For this reason, I anyway planned to implement the proposed API which can then be additionally used by log inspection tools.
Assuming a multi-location Eventuate application, a log inspection tool (be it a standalone CLI or a desktop application) could then connect to all of these locations and use the API remotely for viewing event logs. If needed, we still could embed a CLI into a server process and use that API locally but I'm not sure if this is a benefit over remote usage.
If you think my proposal is reasonable, we could split up work into:

Definition and implementation of the read-only API
Refactoring of event log actors to use that API
Re-implementation of event replication to use that API
Implementation of a remote CLI client that is configurable with application-specific de-serializers and renderers or
Implementation of a remote desktop application that is configurable with application-specific de-serializers and renderers as well.

In my opinion, the proposed API is the most basic way to get event data out of Eventuate data stores for further processing without having to make any assumptions on the underlying storage technology. I'm also thinking about writing a Spark Streaming custom receiver based on this API for further general-purpose event processing (and maybe make it part of akka-analytics).
WDYT?

Hi
Personally I like the suggestions made so far a lot.
However I do have a concern with having to distribute the application specific deserializers to all interested parties. For people not having direct access to git repositories and who typically do not have a scala compiler installed, continually distributing the new deserializers will become a hassle.
I miss a second option where someone helps a user (who do not have a compiler) to install a cli or desktop app and configure it once and then it just works.
I see two obvious options
Centralized server that takes care of deserialization
Two types of clients, one that accesses the serialized payload directly and one that client that communicates with a service that deserializes into a human readable format. This service would in turn be a client of the first type but deployed centrally to a server together with deserializers
Pros: Simple dumb client, less local config, easy to support and update deserializers in one central place
Cons: Have to manage yet another server, need maintain two clients, only one active configuration for everyone at a time
Central repository to download deserializers from
Just one client type that consumes serialized payloads, but deserializer packages are distributed via a central repository.
This model is well known and we could perhaps borrow code/concepts/syntax from SBT to have as few surprises as possible. It would also make it trivial for a developer to publish a local snapshot of the deserializers, update the config file and have the cli use that for their local machine.
Pros: No central infrastructure that needs to be running to read the log, well known model for developers
Cons: More complexity in the client, configuration that can be differentiate on many machines and cause increased support.
Is this a valid concern for you as well? I personally find the second option very compelling.

@magnusart I agree with you and share your concerns. Good coverage of pros and cons (although the centralized server doesn't necessarily need to be a standalone server but could rather be embedded in the main server process).
It seems to me that there's less initial effort to go for the centralized server approach. If we require server applications to configure JSON renderers, for example, generic clients could be developed. But maybe its only my lack of experience of setting up and operating that separate repository that I think the second option is more effort (not only for initial development but also for maintainance). I personally find both options equally compelling at the moment.

If deserialization is not done by the server process itself deserialization might break due to a different configuration or the different environment. E.g. kryo can be configured to use asm or not, use unsafe or not etc. Therefore I find deserialization done by the server process itself a bit more robust.

On a second thought, in the case of downloaded deserializer configuration should be part of the deserializer (so this should be no more than a function). Environment however can be different, which also includes availability of required libraries.

I wonder if in case of the repository approach the first simple step would be to make the user drop the application-artifacts containing (de-)serialization code+configuration (that are most probably anyways published to an internal nexus repository) in a lib-folder of the viewer application.
With this a generic viewer application would still have to traverse the application specific event-classes, so something like a JSON-renderer probably makes sense in any case.
Just my 2c.

Hi
My thoughts were that the first option is less initial effort but means less flexibility. If it becomes part of the application server process then of course that is very convenient, but it would be the same scenario as with replication and the deserialize-serialize-deserialize flow. I'm fine with that but I thought that was something we were trying to avoid on the main server process by consuming serialized messages directly.
In the second option I envision that the configured deserialization packages are downloaded on client start via an embedded maven or ivy client and contains all code needed to convert payloads to human readable formats.
I assume most projects set up an artifact repository sooner or later, either maven or ivy style. If we can piggyback that infrastructure then the setup for the user is just publishing another artifact, either local or remote. The client would be aware of maven and ivy repositories, which in itself is not trivial even if there are some good libraries we can reuse.
The main difference I see is that this offloads the deserialization to the client.  But if that is not important then I agree with you 100%, adding this to the main server process to be a part of eventuate (just another event view actor that exposes an api) feels much simpler and more robust.
In that actor a developer could then filter out or scramble sensitive information like password or social security numbers that should not be visible for support personnel for example.

If the application doesn't need to satisfy high throughput requirements and log inspection doesn't occur frequently I think an embedded server is a good starting point. With the proposed API, a re-implementation of event replication would anyway avoid unnecessary (de)serialization cycles, so that only the log inspection server generates additional (de)serialization overhead.
Applications with higher throughput requirements still can go for a standalone server approach using the proposed API that should be accessible remotely as well. In any case, all options discussed so far can perfectly co-exist, so the main question is what are we starting with. If there are no objections, I'd say let's start with the embedded server approach. Thoughts?

I think you are right and I agree with the embedded approach. +1

+1

Sound good!

Just created #89 to cover work on the proposed read-only API. I'm not sure when I'll be able to start working on it as I'm currently on my way to hell (and hopefully back later) with ticket #68. Taking into account that I'll be offline in August, I think I have to defer it to September.
If someone else wants start working on it, that would be great, but please be keep in mind that #68 will introduce significant changes to Eventuate internals.

This issue was moved to RBMHTechnology/eventuate-tools#8


Ignore IntelliJ IDEA and Mac OS .DS_Store files.

Added IntelliJ IDEA and Mac OS .DS_Store files to .gitignore.

Coverage increased (+0.1%) to 98.547% when pulling 565d7b392659fe95f0fbb8d65732a247bac94259 on golovnin:gitignore_idea_macos into 1a48a3f44e007332cf7fa706238bff6a007c8072 on amaembo:master.

Merged. If you like, however, you may commit instead a properly configured IDEA project (*.iml file, I guess), so other IDEA users can contribute easily. It would be good though to configure it for (at least mostly) compatible code style. Thanks.


Support routers

Something like http://expressjs.com/en/5x/api.html#router

Still debating whether to implement this or not

Seems like .route() is necessary for the router architecture to work. Still debating...


Quick reference not created yet

It should be created, currently it is a dead link.

I'm thinking to not create another one here, but just to link directly to the git-intro one and improve that (and make a new section for collaborative stuff there).  Otherwise, we end up duplicating the intro part in this repo.  What do you think?
But, we currently can't link directly to a reference in another repo.

created, minimally works.  Once someone else reviews, then this issue can be closed.

I'm sure some stuff is missing.
It doesn't duplicate all the git-intro stuff.  It would be reasonable to move all of this info to git-intro (in a separate supersection specifically labelled as "for collaborative git"), and then just link to there.

Closing. Now there is something there. It can always be improved. Now pruning issues to improve focus on really broken things.


babel-eslint vs eslint-plugin-babel vs eslint-plugin-react

I am relatively still learning linting with eslint.
Can you please differentiate purpose of eslint-plugin-babel in comparison to babel-eslint vs eslint-plugin-babel ?

babel-eslint is a parser, it will transform your JavaScript code into an AST that will be used by ESLint to validate your code. You can see what an AST looks like on AST Explorer. ESLint support a few parsers with different capabilities. Babel-eslint is great since it does support all valid Babel code, so it is a good companion if you are already compiling your JavaScript with Babel.
eslint-plugin-* are ESLint plugins, they add some additional rules to ESLint. Most of the plugins can be found on npm with the eslintplugin keyword.

eslint-plugin-babel add some rules for some of the Babel experimental features which are not natively supported by ESLint because it is... experimental.
eslint-plugin-react add some rules specifically for React, this mostly include good practices and JSX code formatting.

Thank you very much! pretty clear :+1: :)

should it be part of readme ?


Error on post-process (estimate working fine)

Whenever I run klipper_estimator in post-process mode, I get the following error:
>>> .\klipper_estimator.exe --config_moonraker_url http://ratos.local post-process SmallCube.gcode
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', tool/src/cmd/post_process.rs:289:47
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I've tried a number of different g-code files, both with v1.0.0 and v1.1.0, and I've tried both on Windows (klipper_estimator.exe) and on my RPI (klipper_estimator_rpi). Running estimate returns the expected result (see below).

Slicer: SuperSlicer 2.3.57
OS: Windows 10 / RatOS (a MainsailOS flavor)
Klipper: v0.10.0-225-g6e6ad7b5
Moonraker: v0.7.1-285-g505c1bf

Sample of a gcode file that failed for me.
Result of this file using estimate:
Sequences:
 Run 0:
  Total moves: 905
  Total distance: 2180.537mm
  Total extrude distance: 51.309mm
  Minimal time: 1m4.534s (64.534s)
  Average flow: 1.912368528150471 mm³/s
  Phases:
   Acceleration: 6.882s
   Cruise:       50.966s
   Deceleration: 6.686s
  Move kind distribution:
   43.971s              => Internal perimeter
   17.541s              => External perimeter
   1.068s               => Custom
   0.993s               => Firmware retract
   0.962s               => Firmware unretract
  Layer time distribution:
thread 'main' panicked at 'index out of bounds: the len is 16 but the index is 16', tool/src/cmd/estimate.rs:257:55
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
   0.000: 0.031s    0.320: 1.955s    0.640: 1.956s    0.960: 1.956s    1.280: 1.956s    1.600: 1.956s    1.920: 1.956s    2.240: 1.956s    2.560: 1.956s    2.880: 1.956s    3.200: 1.956s    3.520: 1.956s    3.840: 1.956s    4.160: 1.956s    4.480: 1.956s    4.800: 1.956s

Not sure if relevant, but here is the result of dump_config:
{
  "max_velocity": 400.0,
  "max_acceleration": 5000.0,
  "max_accel_to_decel": 2500.0,
  "square_corner_velocity": 5.0,
  "instant_corner_velocity": 1.0,
  "move_checkers": [
    {
      "axis_limiter": {
        "axis": [
          0.0,
          0.0,
          1.0
        ],
        "max_velocity": 15.0,
        "max_accel": 120.0
      }
    },
    {
      "extruder_limiter": {
        "max_velocity": 60.0,
        "max_accel": 2078.758440383939
      }
    }
  ],
  "firmware_retraction": {
    "retract_length": 0.5,
    "unretract_extra_length": 0.0,
    "unretract_speed": 40.0,
    "retract_speed": 40.0
  }
}

This is caused by firmware_retraction so yes the config was very helpful :blush:

Thanks for reporting this. New version is going up with this fixed.


SCSS helpers no longer use maps ... they use hard coded chains of if/else making it impossible to define custom buttons

Describe the bug
It should be possible to generate a custom button using Clarity helpers ... Instead, the previously flexible functions have been refactored to be chain of if/elses, preventing from having any flexibility.
Previously I was able to define a custom $clr-global-button-properties-map with my custom button type.
Changes have been done as part of https://github.com/vmware/clarity/issues/2946 https://github.com/vmware/clarity/pull/3207 @mathisscott
Clarity 2.0.0:
@function getSassButtonColor($type: default, $property: null) {
  @if $property == null {
    @return null;
  }

  @if $type == default {
    @return lookupFromDefaultButtonColors($property);
  }

  @if $type == default-outline {
    @return lookupFromDefaultOutlineButtonColors($property);
  }

  @if $type == primary {
    @return lookupFromPrimaryButtonColors($property);
  }

  @if $type == success {
    @return lookupFromSuccessButtonColors($property);
  }

  @if $type == success-outline {
    @return lookupFromSuccessOutlineButtonColors($property);
  }

  @if $type == danger {
    @return lookupFromDangerButtonColors($property);
  }

  @if $type == danger-outline {
    @return lookupFromDangerOutlineButtonColors($property);
  }

  @if $type == link {
    @return lookupFromLinkButtonColors($property);
  }

  @if $type == inverse {
    @return lookupFromInverseButtonColors($property);
  }

  @if $type == icon {
    @return lookupFromIconButtonColors($property);
  }

  @return null;
}

@mixin populateButtonProperties($button-type: default) {
  border-color: getSassButtonColor($button-type, border-color);
  background-color: getSassButtonColor($button-type, bg-color);
  color: getSassButtonColor($button-type, color);

  //To override the visited state of anchor links styled as buttons
  &:visited {
    color: getSassButtonColor($button-type, color);
  }

  &:hover {
    background-color: getSassButtonColor($button-type, hover-bg-color);
    color: getSassButtonColor($button-type, hover-color);
  }

  &:active {
    @if $button-type == link {
      box-shadow: none;
    } @else {
      box-shadow: 0
        getActiveWidthBoxShadowTop($button-type)
        0
        0
        getSassButtonColor($button-type, box-shadow-color)
        inset;
    }
  }

  &.disabled,
  &:disabled {
    color: getSassButtonColor($button-type, disabled-color);
    cursor: not-allowed;
    opacity: 0.4;
    background-color: getSassButtonColor($button-type, disabled-bg-color);
    border-color: getSassButtonColor($button-type, disabled-border-color);
    box-shadow: none;
  }
}

Previously in Clarity 1.0.0, declaring a custom map would let you define custom buttons:
@mixin populateButtonProperties($button-type: default, $button-global-map: $clr-global-button-properties-map) {
  $button-property-map: map-get($button-global-map, $button-type);
  border-color: map-get($button-property-map, border-color);
  background-color: map-get($button-property-map, background-color);
  color: map-get($button-property-map, color);

  //To override the visited state of anchor links styled as buttons
  &:visited {
    color: map-get($button-property-map, color);
  }

  &:hover {
    background-color: map-get($button-property-map, hover-background-color);
    color: map-get($button-property-map, hover-color);
  }

  &:active {
    box-shadow: 0 map-get($button-property-map, active-box-shadow-width-top) 0 0
      map-get($button-property-map, active-box-shadow-color) inset;
  }

  &.disabled,
  &:disabled {
    color: map-get($button-property-map, disabled-color);
    cursor: not-allowed;
    background-color: map-get($button-property-map, disabled-background-color);
    border-color: map-get($button-property-map, disabled-border-color);
    opacity: 0.4;
  }
}

How to reproduce
Try to declare your own button type:
.btn.btn-secondary,
  .btn-secondary .btn {
    @include populateButtonProperties(secondary);
  }

  .btn.btn-secondary-outline,
  .btn.btn-outline-secondary,
  .btn-secondary-outline .btn,
  .btn-outline-secondary .btn {
    @include populateButtonProperties(outline-secondary);
  }

Due to hard coded if/else chain in populateButtonProperties, it's not really possible to declare new button types anymore.
Expected behavior
SCSS functions and helpers should have flexibility to generate styles for new types buttons (and other components possibly)
Versions

Clarity: 2.0.0

Additional notes
The issues with SCSS have originally been discussed over here https://github.com/vmware/clarity/issues/2442

Hi @Rush
Thanks for submitting this issue.
What is the use case for another button type? Clarity already supports primary, secondary, ternary/flat, success, warning, and danger – all in filled and outlined (ghost) versions. That's 12 types of buttons.
Why would you want 14?
Also, the mixins/functions are an intermediary step that is moving us from SASS-based theming to custom properties. As you note, it will make it more challenging to do something like a quaternary button that is purple or something. But the final destination will make theming/customizing the buttons clarity offers so much easier.

Hi @Rush
Per your comments on #3479 ...
The removal of the maps is intentional as I explained above. Likewise, those lookup functions are an intermediary step that we are likewise moving away from and will be deprecating in the future.
All of this is a journey to move the library towards CSS custom properties.
That doesn't help your use case but it is good background information for this conversation.
So when it comes to making new button types... my understanding is you preferred the old maps that were being used so you could add new buttons to it and they would just be auto-generated with the Clarity SCSS code. The problem is that we never intended for those maps to be used in that way. The maps (and there were a few) weren't documented as part of how to customize Clarity. The team unanimously wanted to get rid of the maps because it was harder for them to maintain. It also made the migration to custom properties problematic so we went in the direction of removing the maps.
Given that you are using the Clarity button styles already, what would prevent you from creating a new style of button in just CSS? If you create a class that changes the colors of the existing .btn-outline class, it seems like an easier way to move forward than rebuilding the Clarity SCSS.
But there are likely details and use cases of which I am unaware...

Thanks @mathisscott for your reply - I have somebody working on this again. I'll report back any feedback and lessons learned. Even if only to let other people educated about the challenges.

That would be great and super helpful. It should be noted that with custom properties styling the buttons will become easier but creating new types of buttons will be... well... as hard as it is right now.
If we have a better understanding of what you are trying to do with the buttons, we might be able to add some hooks in that will make it easier for you. Maybe a couple of custom variants that can be styled separately?

There is a workaround available for this issue, and we recommend using it for Clarity Angular. We would consider a contribution to address this issue if someone is able to work out a solution. As we build Clarity Core implementations, we expect that this issue won’t be an issue or will be configurable on the application side. To help us clean up our backlog, we are going to close this with a functional workaround available and suggest you follow updates for Clarity Core for enhancements that can support your use case with Clarity Core components.

There is a workaround available for this issue, and we recommend using it for Clarity Angular. We would consider a contribution to address this issue if someone is able to work out a solution. As we build Clarity Core implementations, we expect that this issue won’t be an issue or will be configurable on the application side. To help us clean up our backlog, we are going to close this with a functional workaround available and suggest you follow updates for Clarity Core for enhancements that can support your use case with Clarity Core components.


Treating lockfiles as binary (no diff) is too subjective

Since adding a .gitattributes file to my team's repo January 11th this year, I've found myself toggling the -diff option a bit too frequently. Thus, I am changing our .gitattributes file to NOT use the -diff (binary) option.
All devs can still individually treat lockfiles as binary,
toggling this setting on/off as they please, like so:

Add this to your ~/.gitconfig file:

[core]
  attributesfile = ~/.gitattributes_global

Add this to a new ~/.gitattributes_global file:

# Better off adding .gitattributes to individual repos.
*.lock            text eol=lf -diff
package-lock.json text eol=lf -diff
pnpm-lock.yaml    text eol=lf -diff
yarn.lock         text eol=lf -diff

@alexkaratarakis I kinda agree with this. With the prevalence of package-lock.json and the https://snyk.io/blog/why-npm-lockfiles-can-be-a-security-blindspot-for-injecting-malicious-modules/
I think that this would be a good thing to put into a Global folder sorta like https://github.com/github/gitignore does for IDE-specific stuff. You, the user, NOT the repo admin, choose what config you want to use for YOUR workflow. vs for other project-specific stuff, that's good to have in .gitattributes. but that's my opinion.
either way, I think this does need revisiting!


Update documentation for trigger creation for ADF Pipelines.

azure.mgmt.datafactory:
2.10.0:
Windows:
3.8.0:

This documentation is not up to date. (https://learn.microsoft.com/en-us/azure/data-factory/how-to-create-schedule-trigger?tabs=data-factory#python-sdk). There is needed more examples about trigger creation and setup, what is it expected for 'properties 'paramenter.
Samples in current documentation does not work resulting in an ARM error (which is also unclear to now what's happening)

Update documentation
Better logging/handling errors in case a parameter is bad constructed and why.

To Reproduce
Steps to reproduce the behavior:

Reproducing example in documentation

Expected behavior

Updated documentation
Better logging/handling errors in case a parameter is bad constructed and why.

Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Thanks for the feedback, we’ll investigate asap.

I am owner of all the mgmt SDK including azure-mgmt-datafactory but not very familiar with how to use the package in different scenarios. I think it is better to let service team member to update the doc with latest azure-mgmt-datafactory. According to commit history, @dbradish-microsoft may help to update https://learn.microsoft.com/en-us/azure/data-factory/how-to-create-schedule-trigger?tabs=data-factory#python-sdk or address more proper experts.

@msyyc, @diberry  is the Python doc's lead.  As this doc is in the azure-sdk-for-python repo, you'll want to work with her first.

#in-progress Thanks for alerting me @dbradish-microsoft.

@diberry any updates?

The doc is updated.

@xiangyan99 @dbradish-microsoft Sorry about not responding sooner - @bobtabor is the lead for Python now.


[icons] License violation in @material-ui/icons

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
The Material icons from Google are available under the Apache 2.0 license. The @material-ui/icons package however is marked as licensed under MIT and is missing a license text and file modification notes.
Expected Behavior 🤔
The @material-ui/icons package should:

Contain a copy of the Apache 2.0 license (as per the license term "You must give any other recipients of the Work or Derivative Works a copy of this License"). This should be both in the repo and the NPM package.

Modified (manually or automatically as here) files should be marked as such (as per the license term "You must cause any modified files to carry prominent notices stating that You changed the files").

Be marked with the correct license in the package.json  file. If there is both Apache and MIT code included you can use an identifier such as MIT AND Apache-2.0.

Note that the MIT license has a similar condition ("The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.") stating that the license should be included in both the repo and the NPM packages.
A lot of users are probably autogenerating license files from the NPM packages list as well, meaning that this issue also will propagate and make others non-compliant as well.
(Not a lawyer, this is my understanding of the licenses)

Thanks for the feedback.
I actually wouldn't know how this should look so that it's useful for anybody. Happy to take a PR that explains how that information is used. Especially for license identifiers I'd be curious to see precedence.
I'd hope that we're legally safe since our readme does include a notice about the icons source.

Having that information in the readme doesn't hurt, but it does not make you in compliance with the license. So, not legally safe no. I can see if I have time to do a PR next week.


Semicolon needed for stripped modifiers followed by [ in strip mode

Describe the bug
For modifiers followed by computed properties [...] like private ['bar'] = 2, when the modifier(s) get stripped without semicolon, [...] may become the subscript part of the expression in the class element before.
Input code
class A {
    foo = 1
    private ['bar'] = 2
}

Config
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": false
    },
    "target": "es2022",
    "loose": true,
    "minify": {
      "compress": false,
      "mangle": false
    }
  },
  "module": {
    "type": "commonjs"
  },
  "minify": false,
  "isModule": true
}

Playground link (or link to the minimal reproduction)
https://play.swc.rs/?version=1.7.40&code=H4sIAAAAAAAAA0vOSSwuVnBUqOZSAIK0%2FHwFWwVDMLugKLMssSRVIVo9KbFIPRYobsRVywUA1%2FC5JzAAAAA%3D&config=H4sIAAAAAAAAA1VPSQ7DIAy85xXI5x4qjv1DH4GoExGxCTtSUZS%2FFxKg7c2e8SzeJyFgJQ0PsZexLFElwjT2glD2rN4FAc4RSScTGW6dZarUrCzhCR0XA6zSglxVSPIuZVOADYGwwJw2bJAz3sz5N1IHFxMSdeeR5pRfLP4HTi0UXHhtJ9leqXVrgeLmgl8Jvpc9cbiDoWeX12rT8QEVPE3nGwEAAA%3D%3D&strip-types=
SWC Info output
No response
Expected behavior
Output:
class A {
   foo = 1
   ;['bar'] = 2
}

Actual behavior
Output:
class A {
   foo = 1['bar'] = 2
}

Version
1.7.40
Additional context
No response

maybe this solution will solve your problem link


dimension/metric selector break without categories

dimension-selector and metric-selector components should handle the case when category is undefined.

Resolved by https://github.com/yahoo/yavin/pull/907


Weld Probe module - add javax.api dependency

org.jboss.weld.probe.ProbeExtension will have some javax.management imports in near future.

Linux Build 7587 is now running using a merge of 89fe994356d2eee7247141cee231b76271b51584

Linux Build 7587 outcome was SUCCESS using a merge of 89fe994356d2eee7247141cee231b76271b51584
Summary: Tests passed: 3117, ignored: 365 Build time: 00:50:35