text:
Consider making attr default to true for properties.

In most cases my properties are always linked to attributes. There's some cases where you wouldn't want to do this, but I think those are the exception not the rule.

My gut feeling on this is that it would be better to be prescriptive about this. I think the principle of least surprise would have attr not default to true, even if you would set it in most cases.

I agree with @bqx. I also have most properties bound to attributes, however I think the properties name would be a bit confusing, since attributes are always bound to properties (I think?) but not vice versa.

Fair enough, we'll keep it as is :)

authors: bqx marcoms treshugart

repo: skatejs/skatejs


text:
🛑 삼화페인트 samhwa is down

In e14176a, 삼화페인트 samhwa (https://samhwa.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 삼화페인트 samhwa is back up in 657cc7d after 7 minutes.

source: gharchive/issue

repo: sknkwoxs/upptime

license: MIT

license_type: permissive

license_source: github-api


text:
Update cats-effect to 2.5.2

Updates org.typelevel:cats-effect from 2.1.4 to 2.5.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Applied Migrations

github:typelevel/cats-effect/v2_4_0?sha=v2.4.0

Documentation:

https://github.com/typelevel/cats-effect/blob/v2.4.0/scalafix/README.md

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

labels: library-update, semver-minor, scalafix-migrations

Superseded by #346.

source: gharchive/pull-request


text:
Problem with HttpRequest.GetResponse exception handling

https://github.com/skybrud/Skybrud.Essentials.Http/blob/v1/main/src/Skybrud.Essentials.Http/HttpRequest.cs#L438-L441
The idea is that if the request succeeds, but the server responds with a non-successful status code (eg. 404 or 500), .NET Framework will throw a WebException (at least that used to be the case). Skybrud.Essentials.Http will catch that exception, and return an IHttpResponse letting it up to the developer to validate the response / status code.
On .NET Standard however, it appears that an AggregateException will be thrown instead, where the inner exception is then the WebException. The implementation in the HttpRequest class doesn't look for the AggregateException, so the underlying WebException isn't caught.

Fixed in 484dfff5920fbfccfadef4d521a6242aec01976a


text:
Performance issues using Landscapist (Coil) compared to just Coil

Please complete the following information:

Library Version: v2.1.11
Affected Device(s): Not a device specific

Describe the Bug:
When using Landscapist (CoilImage) there is a significant decrease in performance compared to using just Coil (AsyncImage).
https://user-images.githubusercontent.com/34074019/232067275-068b7e04-3f2b-4813-912a-0f24e270a84f.mp4
Expected Behavior:
Should be the same as in Coil (AsynImage) - smooth scroll.
Project from video
https://github.com/enxy0/CoilImage

This looks super interesting. It seems to have an issue with caching or requesting scaled image sizes (when the image size is so large) Let me look into the details when I have a moment. Thank you so much for reporting this issue!

I took a bit here. It seems to work well by giving a key value to the LazyColumn to your sample app, but still digging to improve the performance here.
https://user-images.githubusercontent.com/24237865/235712569-67b11256-a161-4131-a028-9395a0aee008.mp4

Alrighty, I found the problem here. In your sample project does not specify the height size of images in the LazyColumn, which means you’re loading 100 to 1000 images at once because of the unclear image size, and all items are loaded at the same time.
You can fix this issue very simply by giving the height size to your CoilImage like the one below.
      CoilImage(
        imageModel = { item.url },
        modifier = Modifier
          .fillMaxWidth()
          .height(300.dp)
      )

I’m not sure how many use cases you need to use, unspecified the height size of the entire item in LazyColumn or list, but let me look into the details when I have a moment. I will change the name of this issue properly.

@enxy0 Additionally, if you don't want to specify the height size, you can set the range to the CoilImage at least like the below:
      CoilImage(
        imageModel = { item.url },
        modifier = Modifier
          .fillMaxWidth()
          .heightIn(min = 100.dp, max = 300.dp)
      )

repo: skydoves/landscapist


text:
fix(gui): support filtering files with multiple extensions in file dialog

Fixes https://github.com/skylot/jadx/issues/2184
After this commit:

The origional filter uses the last segment split by . from file name to match files, so extensions like .jadx.kts won't be accepted
public final class FileNameExtensionFilter extends FileFilter {
    // ...
    public boolean accept(File f) {
        if (f != null) {
            if (f.isDirectory()) {
                return true;
            }
            // NOTE: we tested implementations using Maps, binary search
            // on a sorted list and this implementation. All implementations
            // provided roughly the same speed, most likely because of
            // overhead associated with java.io.File. Therefor we've stuck
            // with the simple lightweight approach.
            String fileName = f.getName();
            int i = fileName.lastIndexOf('.');
            if (i > 0 && i < fileName.length() - 1) {
                String desiredExtension = fileName.substring(i+1).
                        toLowerCase(Locale.ENGLISH);
                for (String extension : lowerCaseExtensions) {
                    if (desiredExtension.equals(extension)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
    // ...

Not sure why you use delegate of FileNameExtensionFilter, because it just uses provided description internally. Everything else looks good, thanks 👍

Hmm... the code I put in description is exactly part of the FileNameExtensionFilter, which doesn't work as expected.
Other parts of it just works fine, I don't want to accidentally break them. FileNameExtensionFilter is a final class so I have to delegate it instead of inheriting it.
thanks for merging : )

repo: skylot/jadx

license_source: bigquery


text:
String concatenation visitor: fix for ArrayIndexOutOfBoundsException

My log file was often very polluted by the string concatenation converter throwing ArrayIndexOutOfBoundsException when the StringBuilder chain contains calls not only to  and append but also to toString() or any other method of StringBuilder that does not take an argument.
This pull request limit the chain to process only constructor class and calls to append.

:tada: This PR is included in version 0.9.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: jpstotz skylot


text:
Remove "ngrok" from package.json (no longer needed)

Summary
Just a small tweak now that ngrok is no longer needed (or mentioned) in this repository with the switch to SocketMode in PR #4
Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.

I think app.json's
  await app.start(process.env.PORT || 3000);

can be simplified to
  await app.start();

too, right?

repo: slackapi/bolt-js-getting-started-app


text:
How To Add Testing

Description
Hey everyone, is it possible to implement testing using bolt? The only way I can think of is mimicing a payload that Slack will send.
if this is possible, can someone point me in the right direction? The goal is to add a testing phase in our app pipeline, to ensure all commands etc. are working correctly.
What type of issue is this? (place an x in one of the [ ])

[x ] testing related
[x ] discussion

Requirements (place an x in each of the [ ])

[x ] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[ x] I've read and agree to the Code of Conduct.
[ x] I've searched for any related issues and avoided creating a duplicate issue.

Thanks for writing in!

The only way I can think of is mimicing a payload that Slack will send.

There is no official testing support in Bolt for JavaScript yet. So, as you guessed, doing so is the only way to write unit tests so far. Actually, Bolt itself has such tests like that: https://github.com/slackapi/bolt-js/blob/%40slack/bolt%402.3.0/src/App.spec.ts#L745-L851
Also, let me share #383 here as the issue has some discussion on this topic.

Awesome thanks for your response and the material. Will go over them to get a better idea, cheers!

Hey just wanted to ask if "no official support in Bolt for JavaScript" is still the current state of things? I've been trying to figure out a good way to test but it came out rather convoluted, see https://github.com/gr2m/github-app-slack-demo/issues/33. Would love any insights or points on how to writes tests and mock Bolt/Slack APIs

An idea here: what if the underlying @slack/web-api package had some kind of 'test mode' that one could enable, which would:

Prevent any HTTP requests from being made, and
Keep track of calls made using the library

(the above is inspired by aws-lite.org, which implements this, and is wonderful to work with)
The above should address the mocking question to prevent interacting with Slack APIs.
Next, to consider how to test bolt apps, bolt is essentially event-driven and is built on a middleware system. Invoking handlers directly in tests, and passing fake events and asserting on how the handler reacts, should be doable. Perhaps a new test-specific API to invoke a specific handler, perhaps something like:
import { Test } from '@slack/bolt';
import { MessageEvent} from '@slack/types';
import myApp from '../app.js'; // <-- instance of '@slack/bolt' App
import assert from 'node:assert'
const fakeMsgEvent: MessageEvent = {
  // ...
};
Test.dispatchEvent(fakeMsgEvent, myApp);
assert(someStuff)

repo: slackapi/bolt-js


text:
Rate limited team reported differs from request team

Hey, for some reason we have some users being rate limited for different teams that they belong to. For example, we have the team_id T012ABCDE0A and a user_id U012ABCDE01 being rate limited even though he should not because of the number of requests done at the last minute, and we can see this in the logs from logger com.slack.api.methods.impl.AsyncRateLimitExecutor
Got a rate-limited response from users.profile.set API (team: T987PQRS0X0, error: status: 429, error: ratelimited, needed: null, provided: null, warning: null, retry-after: 6)
As you can see, the team reported as being rate limited differs from the one that made the request. This is happening for the users.profile.set method.
One of our attempts to solve this was to implicitly add the user token to the request to make sure we were using the correct team_id later on. We also created a Slack bug report and it seems like in this case, the user being rate limited was not actually being rate limited at that time.
Reproducible:
@Factory
public class SlackClientFactory {
@Singleton
Slack make(@Named(ExecutorServiceFactory.SLACK_CLIENT_EXECUTOR_NAME) ScheduledExecutorService executorService) {
final SlackConfig config = new SlackConfig();

final ExecutorServiceProvider executorServiceProvider = new ExecutorServiceProvider() {
@Override
public ExecutorService createThreadPoolExecutor(String threadGroupName, int poolSize) {
return executorService;
}

@Override
public ScheduledExecutorService createThreadScheduledExecutor(String threadGroupName) {
return executorService;
}
};
config.setExecutorServiceProvider(executorServiceProvider);

return Slack.getInstance(config);
}

}
public class SlackUserClient {
private final AsyncMethodsClient methods;

public SlackUserClient(SlackUser slackUser, Slack slack) {
methods = slack.methodsAsync(slackUser.getAccessToken(), slackUser.getTeamId());
}

public CompletableFuture<UsersProfileSetResponse> setUserProfile() {
 final UsersProfileSetRequest.UsersProfileSetRequestBuilder usersProfileSetRequestBuilder = UsersProfileSetRequest.builder()
                    .token(slackUser.getAccessToken())
                    .profile(profile)
                    .user(slackUser.getUserId());
            final UsersProfileSetRequest usersProfileSetRequest = usersProfileSetRequestBuilder.build();
return methods.usersProfileSet(usersProfileSetRequest);
}
}

The Slack SDK version
implementation 'com.slack.api:slack-api-client:1.30.0'

Java Runtime version
Java 17.0.6_10

OS info
Linux/X86_64

Hello @igorrpessoa thanks for sharing this 💯
Are the workspaces you are testing this on Enterprise Grid or Orgs? it may be possible that the team_id returned is the org level one instead of the individual workspace
This seems to be a server-side issue, did the slack bug report indicate that this was an issue specific to the java-slack-sdk?

Hi, thanks for the response!
I think we have it in orgs because we do not support Enterprise Grid. This is happening to a couple of different users that should not have anything in common. Two different companies, workspaces, and users that do not share the same workspaces. Also looked at the tokens to ensure there weren't any duplicates.
I reached them and handled the team_id and user_id that were being rate limited, and this was their response:
Interestingly, I can't see your app getting ratelimited at that time. That combined with the wrong team_id being returned from the SDK, I wonder is there a potential issue with the SDK itself.

Can you create a new issue directly on the SDK below:

https://github.com/slackapi/java-slack-sdk/issues
Creating an issue there will put you in contact with the SDK developers directly, so hopefully they should be able to point you in the right direction.

Thanks for the response!
We are actually doing this. The only singleton instance that we are using is the Slack object as it's recommended. Here is the part that we create SlackClient object, usually called after searching SlackUser and SlackBot data saved in our DB.
    protected SlackClient client(@Nullable User user, SlackUser slackUser, SlackBot bot) {
        final Logger log = LOG.with(user, slackUser, bot);

        return new SlackClient(user, slackUser, bot, new SlackBotClient(bot, slack), new SlackUserClient(slackUser, slack), this);
    }

As the earlier code shared, SlackBotClient and SlackUserClient are the classes that intantiates the AsyncMethodsClient for Bot and User requests.
public class SlackBotClient {

 private final AsyncMethodsClient methods;

    public SlackBotClient(SlackBot slackBot, Slack slack) {
        this.slackBot = slackBot;
        methods = slack.methodsAsync(slackBot.getAccessToken(), slackBot.getTeamId());

    }
...
}

public class SlackUserClient {
    private final AsyncMethodsClient methods;

    public SlackUserClient(SlackUser slackUser, Slack slack) {
        methods = slack.methodsAsync(slackUser.getAccessToken(), slackUser.getTeamId());
    }

    public CompletableFuture<UsersProfileSetResponse> setUserProfile(UsersProfileSetRequest usersProfileSetRequest) {
        return methods.usersProfileSet(usersProfileSetRequest);
    }
...
}

And here is where we call and log the information
          final UsersProfileSetRequest params = UsersProfileSetRequest.builder()
                  .user(slackUser.getUserId())
                  .token(slackUser.getAccessToken())
                  .profile(profile)
                  .build();
 client.setUserProfile(params).thenAccept(result -> {
                if (result.isOk()) {
                    userlog.info("Slack status cleared");
                } else {
                    userlog.add("error", result.getError()).error("Failed to clear Slack status");
                }
            });

authors: WilliamBergamin igorrpessoa

repo: slackapi/java-slack-sdk


text:
slack_sdk.rtm_v2.RTMClient.on with a custom callback

In the v1 RTM client there was a way to specify a custom callback, so I could do something like this:
import slack_sdk

class SlackBot:
    def __init__(self, token):
        self.rtm = slack_sdk.rtm_v2.RTMClient(
            token=self.config["bot_access_token"]
        )

    # How to do the decorator here when `rtm` is defined in __init__
    def handle(self, client, event):
        # Do something interesting

bot = SlackBot(token)

slack_sdk.rtm.RTMClient.on(event="message", callback=bot.handle)

But in the v2 RTM client the documentation doesn't call out any way to do this same custom callback.
The current document has a very simple use case for this functionality, but doesn't seem to 'scale' to more complex usages of the v2 RTM client.
Another example solving for this use case would be great!
import slack_sdk

class SlackBot:
    def __init__(self, token):
        self.rtm = slack_sdk.rtm_v2.RTMClient(
            token=self.config["bot_access_token"]
        )

    # How to do the decorator here when `rtm` is defined in __init__
    def handle(self, client, event):
        # Do something interesting

bot = SlackBot(token)

# Or somehow register `bot.handle` here against the RTMClient?

The page URLs

https://slack.dev/python-slack-sdk/real_time_messaging.html

Hi @michael-robbins, thanks for asking the question! You can refer to the test code https://github.com/slackapi/python-slack-sdk/blob/main/tests/slack_sdk/rtm_v2/test_rtm_v2.py for it. The way to add callbacks is mostly the same but the on method is an instance method of the client instance and the method signature is slightly different.

Ahh ok, so I can do something like the following? If so, that's great!
import slack_sdk

class SlackBot:
    def __init__(self, token):
        self.rtm = slack_sdk.rtm_v2.RTMClient(token=token)
        self.rtm.on("message")(self.handle)

    def handle(self, client, event):
        # Do something interesting

bot = SlackBot(token)

@michael-robbins At this moment, only static methods are supported. But we are happy to enhance the on method to support instance methods as well in future versions.
from slack_sdk.rtm.v2 import RTMClient

class MyApp:
    def __init__(self, token: str):
        self.rtm = RTMClient(token=token)
        self.rtm.on("message")(self.handle)

    @staticmethod
    def handle(client: RTMClient, event: dict):
        client.logger.info(event)

    def start(self):
        self.rtm.start()

Hmmm ok could the closure/wrapping method instead? Or does it still need to be static... :/
from slack_sdk.rtm.v2 import RTMClient

class MyApp:
    def __init__(self, token: str):
        self.rtm = RTMClient(token=token)

        @self.rtm.on("message")
        def handle(self, client: RTMClient, event: dict):
            client.logger.info(event)

    def start(self):
        self.rtm.start()

I guess because I have a whole bunch of logic/interactions that the bot needs to do and access to self is something my use case relies on.

@michael-robbins
I would recommend going with either of the following approaches. Either way, your listener method cannot have self/cls in the argument list. This is a limitation that the v2 client currently has. Apart from these ideas, I don't have any other suggestions at this moment. I would recommend writing some code to verify if your idea works with the v2 client.
option 1: having the listener method inside the constructor
The decorator with self @self.rtm.on is not allowed in Python. In the handle method, your app can access self/app and its methods.
class MyApp:
    def __init__(self, token: str):
        self.rtm = RTMClient(token=token)

        def handle(client: RTMClient, event: dict):
            app.save_in_db(event)
            client.logger.info(event)

        self.rtm.on("message")(handle)

    def save_in_db(self, event):
        print("save_in_db called")

    def start(self):
        self.rtm.start()

token = os.environ["SLACK_CLASSIC_BOT_TOKEN"]
app = MyApp(token)
app.start()

option2: having listener method outside of the class
class MyApp:
    def __init__(self, token: str):
        self.rtm = RTMClient(token=token)

    def save_in_db(self, event):
        print("save_in_db called")

    def start(self):
        self.rtm.start()

token = os.environ["SLACK_CLASSIC_BOT_TOKEN"]
app = MyApp(token)

def handle(client: RTMClient, event: dict):
    app.save_in_db(event)
    client.logger.info(event)

app.rtm.on("message")(handle)

Yeah helpful, just had my head stuck in rewriting the bot to handle doing everything inside the thread locally vs because where I didn't have to worry about it as much.
My only feedback on improvements to the doco would be:

Some more examples around using the RTM like what's above
Some better functional testing examples (or just porting the RTMv1 functional testing code over to the RTMv2 API)

Happy for this to be closed off though :)

Thanks for the reply and sharing the feedback! Let us close this issue now.

authors: michael-robbins seratch

repo: slackapi/python-slack-sdk


text:
When I set a time.sleep(1) in handle_message function, multiple repeated responses will occur.

Hello, I have follow the instruction and try to achieve the function that I send "hello" to the chatbot and the chatbot will response me "goodbye". However, when I set a time.sleep(3), there will be a lot of same "goodbye" responses. For some reasons my project needs to get a delay response from the chatbot. If there are some ways to fix this problems?  Here is my simple test code.

@kelulucaipeixi Thanks for asking a question here!

Your app should respond to the event request with an HTTP 2xx within three seconds. If it does not, we'll consider the event delivery attempt failed. After a failure, we'll retry three times, backing off exponentially.

As described in the document, the Slack API server may retry if your server doesn't respond within 3 seconds.

https://api.slack.com/events-api#the-events-api__responding-to-events
https://api.slack.com/events-api#the-events-api__field-guide__error-handling__graceful-retries

Unfortunately, the slackeventsapi library doesn't provide any asynchronous execution mechanism for easily running code that may take longer than 3 seconds.
We're actively working on a new project - Bolt for Python. This library provides a much simpler way to deal with this issue. If you're fine to try its early version (Bolt for Python is still in alpha), take a look at the library. https://github.com/slackapi/bolt-python/blob/v0.3.1a0/samples/message_events.py
As this question is not about this library slackclient, could you please close this? If you have further questions about slackeventsapi library, please feel free to post a question at https://github.com/slackapi/python-slack-events-api/issues I can help you out! 👋

Thank you very much! I'm sorry to post it at wrong place. I'll close it soon.

authors: kelulucaipeixi seratch

repo: slackapi/python-slackclient

license: mit


text:
Add note about only creating a presenter for supported screen types

Fixes #1639

Sigh, Android's CI infrastructure for emulators are really under supported. I'll just manually merge this one for now (we use a different instrumentation test provider for our own PRs)

authors: ZacSweers dturner

repo: slackhq/circuit


text:
MS Feedback: Data scrollers (List view) scenario likely not in scope

Data scrollers (List view) scenario likely not in scope
The list view scenario is not fully covered. In Microsoft's first version of the WinJS virtualized list view, we had an implementation similar to the one that this proposal tries to help facilitate. However, our experience with the v1 showed that frequent element cycling/thrashing led to terrible perf (in all UAs). Now in our v2+ we preload a larger subset of elements to avoid too frequence cycling, and this works better for avoiding the flashes of white and DOM thrashing as well.
There's a lot of code in our virtual list view for maintaining the virtual content length (for accurate scrollbar calculation). This is tightly coupled with addition/removal of virtual contents and is not really addressed by the proposal.
In the virtual list view case, there's usually not one specific element target which is the basis for determining when and how to hydrate/de-hydrate elements. To that end, the PositionObserver does not provide a direct solution here (though it might be useful indirectly by way of extending an element target's rectangle).
In general, we don't think the virtual list view scenario is/should be a target scenario for the feature. Its implementation is rather complicated and not likely fully addressed by PositionObserver.

Hey Travis!
I think perhaps the example code doesn't serve as a good example of the architecture I was trying to go for there: my goal was exactly the sort of element recycling strategy you not that WinJS adopted in subsequent revisions (and which our high-performing Closure/Polymer UIs use). Generating new nodes each time doesn't scale.
My goal here was to show how this API can be used to improve the positioning calculations that the recycler/controller is going to be doing.
Does that clarify it?

Also, Travis, can you clarify what you mean by "In the virtual list view case, there's usually not one specific element target which is the basis for determining when and how to hydrate/de-hydrate elements."?

Closing issue. Please reopen if the comments don't address the concerns. Discussion with Matt, et al in Paris implied to me that MS is happy moving forward with the API modulo working out minor issues.

authors: ojanvafai slightlyoff travisleithead

repo: slightlyoff/PositionObserver


text:
Gives same results as previous page when using next_page_token

When I have more than 40 results... The first and the second sets of 20 are working great.. but the third time, I get the results of the second set and keeps on doing the same.

@shriram-k can you paste a code snippet for that here?

repo: slimkrazy/python-google-places


text:
Use PHP attributes for route definitions

PHP 8.0+ allows you to use attributes for classes and methods. As a long-time slim user, I thought about implementing attributes in order to define routes.
Instead of writing
$app->get("/users/", "function", $middlewares);

, we then could directly write code like this:
#[Controller(route: "/users", middlewares: [AuthenticationMiddleware::class])]
class UserController extends AbstractController {

    #[Endpoint(method: RequestMethodInterface::METHOD_GET, route: "/", middlewares: [])]
    public function get(Request $request, Response $response, array $args): Response {
        ...
    }

}

Is this something that could be implemented in Slim as a feature?

This would require the entire routing system to be redesigned. I'm not opposed to it but this needs a lot of thought and it would be for Slim 5. There is no plan to develop Slim 5 at the moment.

Of course, I understand – it was more or less a random idea.
I made my own implementation but I feel like this could be done in way a better way. I have not figured out how to lazy load the controllers yet, which is quite important imo. In my implementation, it needs to read/parse all controller files first in order to generate the slim routing ($app->get(), etc...).
If this issue is ever going to be of interest, let me know and I'll be happy to assist.
Thanks a lot for your contributions to Slim, it is really great!

My implementation adds a class AbstractController that has a static method called register($app). This methods looks for attributes on the class that implements AbstractController. Attributes must be given to the child controller and the controller methods. The register method simply automatically adds all necessary routes to the $app provided as parameter. From the main file (where I define the Slim app) I then will call AnyController.register($app).
It looks like @MikeDevresse has chosen a very similar approach.
There are some drawbacks and I don't know if it's possible to bypass them. One drawback is that all controllers must be initially "registered" (meaning that we need to run the register method, which execute Reflection methods on all Controllers of the entire application). There is no such thing as lazy-loading those classes, which could lead to unnecessary code executions. For smaller apps with smaller request counts, the performance hit will be negligible.
When using Slim out of the box, Controllers are not initalized/read before they actually get called. That only happens, if the route matches the given expression.
What are your thoughts @MikeDevresse?

Hello, i created a package to try solve
https://packagist.org/packages/rodrifarias/slim-route-attributes

This is supported in the upcoming release of https://github.com/juliangut/slim-routing

I suggest closing this issue because there are specific packages available for implementing PHP attributes for route definitions (see above). Integrating this feature directly into Slim would require significant redesign and might be redundant given these existing options.

I'm closing this issue as there are already packages for this functionality.

https://packagist.org/packages/rodrifarias/slim-route-attributes
https://github.com/juliangut/slim-routing

authors: andreas-aeschlimann mbolli odan rodrifarias

repo: slimphp/Slim


text:
Added ability to add handled exceptions as an array

This is a follow up of #2900. I messed up trying to make changes to his branch and it's not recoverable.
Credit goes to @nickdnk

Coverage remained the same at 100.0% when pulling 6537a86c5b893d488adc08a1e0914912ab1917dc on l0gicgate:AddMultipleErrorHandlers into d420a9e81b27293215da797109e1460b06e4e774 on slimphp:4.x.


text:
Show Wh units as integer

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When i'm autonomous, i'm consumming very little from the grid (and inject on the grid) very little and early on the morning, the load of the hours is less than 1 kWh.
It's "cosmetic" bug i would like to see integer instead of float value when it's show in Wh units  ( So 620 Wh instead of 620.0 Wh actually )

Steps To Reproduce
No response
Expected behaviour
Print Wh units as integer will result in same precision of kWh with round(1)
Card Version
V5.3.0
Home Assistant Version
2024.10.3
Configuration
type: custom:sunsynk-power-flow-card
cardstyle: compact
show_solar: true
battery:
  shutdown_soc: number.victron_multiplus_min_soc
  show_daily: true
  invert_power: true
  dynamic_colour: true
  show_remaining_energy: true
  animate: true
  linear_gradient: true
  show_absolute: false
  auto_scale: true
  energy: 15000
  max_power: 5000
solar:
  show_daily: true
  mppts: 1
  pv1_max_power: 5600
  auto_scale: true
  max_power: 5600
  dynamic_colour: true
  efficiency: 1
  pv1_name: " "
load:
  show_daily: true
  load1_icon: ""
  dynamic_icon: false
  invert_load: false
  max_power: 7000
  dynamic_colour: true
grid:
  show_daily_buy: true
  show_daily_sell: true
  show_nonessential: false
  load1_icon: ""
  load2_icon: ""
  load3_icon: ""
  import_icon: mdi:transmission-tower
  export_icon: mdi:transmission-tower
  auto_scale: true
entities:
  battery_power_190: sensor.victron_battery_power
  battery_current_191: sensor.victron_battery_current
  day_pv_energy_108: sensor.victron_pv_yeld_today
  pv1_power_186: sensor.victron_pv_power
  pv2_current_112: sensor.sunsynk_pv2_current
  pv1_current_110: sensor.victron_pv_battery_current
  pv1_voltage_109: sensor.victron_pv_voltage
  remaining_solar: sensor.solcast_pv_forecast_forecast_remaining_today
  environment_temp: sensor.detecteur_porte_d_entree_temperature
  battery_temp_182: sensor.victron_battery_temperature
  battery_voltage_183: sensor.victron_battery_voltage
  battery_soc_184: sensor.victron_battery_soc
  battery_rated_capacity: sensor.victron_battery_full_capacity
  inverter_status_59: sensor.victron_inverter_state
  inverter_voltage_154: sensor.ac_grid_voltage
  load_frequency_192: sensor.victron_ac_grid_frequency
  inverter_power_175: null
  grid_power_169: sensor.victron_multiplus_power_from_grid
  prog1_charge: switch.victron_system_schedule_charge_hc
  prog2_time: input_datetime.cerbo_schedule_2_heure_de_demarrage
  prog1_capacity: number.victron_multiplus_battery_schedule_soc_limit
  prog2_capacity: number.victron_multiplus_battery_schedule_2_soc_limit
  prog2_charge: switch.victron_system_schedule_2_activer
  grid_voltage: sensor.zlinky_urms1
  grid_ct_power_172: sensor.victron_multiplus_power
  use_timer_248: switch.victron_system_schedule_charge_hc
  day_grid_import_76: sensor.energy_from_grid_daily
  day_grid_export_77: sensor.energy_to_grid_daily
  day_battery_charge_70: sensor.energy_to_battery_daily
  day_battery_discharge_71: sensor.energy_from_battery_daily
  day_load_energy_84: sensor.energy_to_home_daily
  load_power_L1: null
  essential_power: sensor.victron_ac_consumption
show_grid: true
inverter:
  model: victron
  autarky: power
  modern: false
show_battery: true
large_font: true
panel_mode: true
decimal_places: 1
dynamic_line_width: true

Relevant log output
No response

HI. I'll take a look


text:
chore: Release 1.6.0

#label:release v1.6.0

Current plan is

Merge https://github.com/slsa-framework/slsa-verifier/pull/552 after adding support for env var
Release new version of slsa-verifier
Update e2e and pre-submit tests to use the new version verifier
Release a new RC for the generator
Final release for the generator

eta is maybe mid-week ~Apr 12ish?

Closing for now since Oak is using the RC release for testing.

repo: slsa-framework/slsa-github-generator


text:
Moving chat to another pane disables all interactions until extension host is restarted

Moving chat to another pane disables all interactions until extension host is restarted. Clicking chats or buttons is noop even when moving pane back to original side (except the x button to delete chats for some reason).

Possibly related console log:
  ERR command 'workbench.action.focusSideBar' already exists: Error: command 'workbench.action.focusSideBar' already exists
    at d.registerCommand (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:154:204819)
    at Object.registerCommand (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:164:22256)
    at PanelWebview.resolveWebviewView (/Users/cardoso/.vscode-insiders/extensions/smallcloud.codify-3.2.112-darwin-arm64/out/sidebar.js:142:25)
    at c.$resolveWebviewView (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:156:55939)
    at E.S (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:151:5986)
    at E.Q (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:151:5752)
    at E.M (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:151:4739)
    at E.L (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:151:3830)
    at i.value (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:151:2297)
    at n.B (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:737)
    at n.fire (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:954)
    at s.fire (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:97:14502)
    at i.value (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:177:8666)
    at n.B (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:737)
    at n.fire (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:954)
    at s.fire (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:97:14502)
    at MessagePortMain.<anonymous> (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:177:6792)
    at MessagePortMain.emit (node:events:519:28)
    at Object.MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:2:2285)

Aha, right, I was able to reproduce this.

v5.0.100 - not reproducible

authors: cardoso hazratisulton olegklimov

repo: smallcloudai/refact-vscode


text:
🛑 ERapor K13 Website (tunnel) is down

In 80af69b, ERapor K13 Website (tunnel) (https://erapor.sman3palu.sch.id) was down:

HTTP code: 530
Response time: 86 ms

Resolved: ERapor K13 Website (tunnel) is back up in 2344b20 after 16 hours, 14 minutes.

repo: smantriplw/uptime-services


text:
🛑 CBT (Computer Based Test) Website (proxmox) is down

In 109b473, CBT (Computer Based Test) Website (proxmox) (https://cbt.sman3palu.sch.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: CBT (Computer Based Test) Website (proxmox) is back up in 102efc2 after 8 minutes.


text:
[Feature Request] Support for essence diffuser

Home Assistant version 2022.3.1
SmartIR version v1.17.5
Describe feature
Introduce support for devices like this one: https://www.aryahd.com/product/mars/
Basically there are4 statuses:

Off
Diffuser without light
Diffuser with fixed color light
Diffuser with multi color light

avoid stale

@vassilis-panos , do you think it can be a useful addition ?
Simone

Hopefully you can consider an addition for such devices ;-)
Simone

One more ping ;-)
Simone

repo: smartHomeHub/SmartIR


text:
Added initial OCR setup and contract deployment to tests

[x] update GHA once this is merged: https://github.com/smartcontractkit/chainlink-github-actions/pull/26

NOTE: do not squash merge - need to keep commit hashes intact

@aalu1418 @archseer
All in all looks good to me 👍

authors: sdrug smickovskid

repo: smartcontractkit/chainlink-starknet


text:
Feature/65 login page

Desktop:

Mobile:

@samumic thanks for the screen-shots, very helpful!
I guess we should add some spacing between the label/input combos - apart from that, looking sweet! 👍

authors: monobasic samumic

repo: smartive-education/app-musketeers


text:
Add traffic observer

This PR brings 3 things as consequence of the demo preparation:

A test for the translator with TrafficFlowObserved instance

Motivation: To have yet another "official model" in the demo example.
Future ideal: to have these tests pull models from somewhere in accordance to dataModels repository.

A relaxation on the entities types recognition.

Motivation: QL should not fail if user misstyped the type. Worst case, fallback to string.
Future ideal: to have QL attempt some guessings of the type so we can think of accepting "simplified notation" for entities.

The scripts in the dataModels experiment folder, used to generate random input of entities of those types.

Motivation: It's practical to have them at hand in the same folder
Future ideal: Replace these with something more aligned with the device simulator. Even though it's much more sophisticated than our current needs, there might be some common factor.

i would also do a little bit of linting on the modified files so us to make codeclimate more happy ;)

From 46 down to 12. Some are to be ignored indeed (long lines due to links or markdown tables).
Others I have them in my todo list, specially re-writing the insert method which is looking more than ugly :p. In any case, thanks for bringing the attention to this.

repo: smartsdk/ngsi-timeseries-api


text:
How to define modules' property and event spec in editor?

ModuleSpec also have property and event. But module is created in editor, so developers can't define property spec by coding like what they do for components and traits. Editor lacks the ability to compose a type definition.
Fortunately, module property still can work without definition. But I think it remains a problem.

This is a json schema editor.
https://hellosean1025.github.io/json-schema-visual-editor/

This library can convert a JSON to JSON Schema.
https://github.com/quicktype/quicktype

Completed.

repo: smartxworks/sunmao-ui


text:
Fun3dInterface Grid Deformation Fix

FUN3D Grid deformation unit tests now pass down to machine precision
Fix was to not input the deformation in initialize_adjoint() which changes metadata in the grid deformation elasticity matrix. We are supposed to use x_G0 in computing K_G for FUN3D
As a result K and K^T from complex forward and adjoint were slightly different when K^T from the adjoint was transposed and compared.

Not ready for merge yet, still testing

repo: smdogroup/funtofem


text:
Korean character support

Currently this extension cannot handle Korean characters (Hangul). What DICOM standard says is as follows:

Use KS X 1001 character set, formerly known as KS C 5601 and registered as ISO-IR 149
Use ISO-2022-KR encoding which uses escape sequences

G0 set ESC 02/04 02/08 04/03
G1 set 01/11 02/04 02/09 04/03 or ESC $ ) C (i.e., "Use Hangul from here")

The problems is that ISO-2022-KR is a very rare encoding and I cannot find a pure-JS decoder for that. Seemingly EUC-KR is very similar, and CP949 is a superset of EUC-KR. A hacky solution would be to just decode the text with CP949 and remove the 4-byte escape sequence using regex. This works at least in this example, but I don't know if it's the right approach.

Okay, I now realized that EUC-KR and ISO-2022-KR are almost identical except that the latter implicitly invokes multibyte characters into the G1 area whereas the latter requires you to explicitly invoke them using the four byte sequence ESC $ ) C. So we can simply remove the escape sequence and treat it as a sentence in EUC-KR.

Fixed in 1.2.0

repo: smikitky/vscode-dicom-dump


text:
Unix Time support for MicroPython

Hi there,
within #51, we are discussing CayenneLPP Unix Time type compatibility with MicroPython.
@smlng said:

This adds dependencies to datetime and tz. I am not sure about appropriate support in MicroPython - though the status of MicroPython is a bit unclear to me, too.

@amotl said:

Indeed, we are using the library on MicroPython through our Terkin Datalogger and would like it to stay compatible with MicroPython.

I will check whether the current implementation would work using the MicroPython datetime module [1] and document the process within this issue.
With kind regards,
Andreas.
[1] https://github.com/micropython/micropython-lib/blob/master/datetime/datetime.py

I will check whether the current implementation would work using the MicroPython datetime module.
Pycom MicroPython 1.20.2.rc6-0.10.2-vanilla-squirrel-nosmartconfig [v1.20.1.r2-122-gd82a6f43e-dirty] on 2020-03-06; FiPy with ESP32
Type "help()" for more information.
>>>
>>> from cayennelpp import LppFrame
>>> frame = LppFrame()
>>> frame.add_unix_time(0, 1590010843)

>>> print(frame)
LppFrame(data = [
  LppData(channel = 0, type = Unix Time, value = (1590010843,))
])

>>> frame.bytes()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "cayennelpp/lpp_frame.py", line 61, in bytes
  File "cayennelpp/lpp_data.py", line 61, in bytes
  File "cayennelpp/lpp_type.py", line 221, in lpp_unix_time_to_bytes
  File "datetime.py", line 1919, in <module>
  File "datetime.py", line 1836, in _create
AttributeError: type object 'tzinfo' has no attribute '__new__'

It does not work out of the box yet. Bummer!

After following https://github.com/micropython/micropython-lib/issues/319 and applying https://github.com/micropython/micropython-lib/issues/319 to the MicroPython datetime module, at least importing timezone works. However, now I am getting:
>>> from cayennelpp import LppFrame
>>> frame = LppFrame()
>>> frame.add_unix_time(0, 1590010843)
>>> frame.bytes()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "cayennelpp/lpp_frame.py", line 61, in bytes
  File "cayennelpp/lpp_data.py", line 61, in bytes
  File "cayennelpp/lpp_type.py", line 231, in lpp_unix_time_to_bytes
  File "datetime.py", line 1370, in fromtimestamp
TypeError: can't convert float to int

After fixing this like
# MicroPython does not accept fractions of seconds to "time.gmtime()".
t = int(t)

this is next:
>>> from cayennelpp import LppFrame
>>> frame = LppFrame()
>>> frame.add_unix_time(0, 1590010843)
>>> frame.bytes()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "cayennelpp/lpp_frame.py", line 61, in bytes
  File "cayennelpp/lpp_data.py", line 61, in bytes
  File "cayennelpp/lpp_type.py", line 231, in lpp_unix_time_to_bytes
  File "datetime.py", line 1374, in fromtimestamp
ValueError: need more than 8 values to unpack

Encoding works now:
>>> from cayennelpp import LppFrame
>>> frame = LppFrame()
>>> frame.add_unix_time(0, 1590010843)
>>> frame.bytes()
bytearray(b'\x00\x85^\xc5\xa3\xdb')

So, we conclude it should be safe to merge #51, when taking into account that the MicroPython datetime module needs some updates, which have been implemented within datetime.py through https://github.com/daq-tools/pycopy-lib/commit/5c8e8342.

Sebastian suggested to

use the same code as for the generic uint but with the correct type for unix timestamp and use integer as input and output. The user would then do something like

# Encode
from datetime import datetime
frame = LppFrame()
frame.add_unix_time(datetime.now().timestamp())

# Decode
dt = datetime.fromtimestamp(frame.data[0].value)

Let's keep this open until we have this feature in - independent of the implemented solution.

basic implementation done in #56

authors: amotl smlng

repo: smlng/pycayennelpp


text:
Fixing error related to "next" keyword (void value expression error)

Hello,
I know smooch-ruby is auto-generated, so, this fix should probably go into the generator level. Anyway, it might still be useful if anyone is facing the same problem. I was getting the following error when trying to use the list_integrations method:

/var/lib/gems/2.3.0/gems/smooch-api-4.2.0/lib/smooch-api.rb:44:in require': /var/lib/gems/2.3.0/gems/smooch-api-4.2.0/lib/smooch-api/models/get_messages_response.rb:90:  void value expression (SyntaxError) /var/lib/gems/2.3.0/gems/smooch-api-4.2.0/lib/smooch-api/models/get_messages_response.rb:102:  void value expression [conversation, messages, next].hash                                    ^ from /var/lib/gems/2.3.0/gems/smooch-api-4.2.0/lib/smooch-api.rb:44:in <top (required)>'
from smooch.rb:8:in require' from smooch.rb:8:in '

The problem is because next is a reserved word and it's being used as an attribute here. The fix was to just prepend next with self..

Thanks for the PR, unfortunately this repo holds only swagger codegen generated code. I have however filed an internal issue to investigate if swagger codegen can properly avoid reserved keywords.

authors: alavers caiosba

repo: smooch/smooch-ruby


text:
Create ArtObjectAndImageRESTAPI

I'd like to upload the Art Object and Image API specification document that was created for ConservationSpace as well as the NGA's Java / Spring based implementation of these services.  Steve, do you think this is an appropriate place to upload such documents? Should we have a higher level structure such as software vertical, then in each, perhaps a specific sub-project, then a template like docs, source, etc. OR do you think we should have a glamx central directory / documentation area only with links out to the individual projects to provide for more decentralized control?

That is a good point.  Optimally, each organization that has NetX is also a collaborator, so it makes sense to me to have a directory structure of sorts by institution with a similar template.  The readme can then point to other places in the same repo.   I think multiple collaborators is important.  I don't want to be the sole "owner".  Let's give that a try and see how it goes.

I made a number of changes to reflect some of the things mentioned in this thread.  What do you think?


text:
Implement n_jobs argument for zwaad

Fixes #129

By the way, what is wrong with tests?

repo: snad-space/zwad


text:
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.

Hi:
SATURN's programmer
when i run train-saturn.py to integrate my cross-species scRNA dataset, I met a error message that doesn't stop the whole program:
"PRETRAIN SCORES
------Log Reg Scores-----
/PATH/TO/MY/sklearn/linear_model/_logistic.py:444: ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT."
And, it looks like a failure when get_all_scores script tried to convergent, how can i improve the ITERATIONS number by adjust the default parameter, like --polling_freq or --pretrain_epochs?

Hi,
This is just a warning about the classifier used to score the alignments, it shouldn't change results.
To change this you would edit this line:
https://github.com/snap-stanford/SATURN/blob/6906abf23728aa8ebf400cedf4ce38e4821a0a49/score_adata.py#L839
and add an argument max_iter= to the initialization of the logistic classifier model, setting the value to something above the default 100, like to 200.
However, I don't think this is needed.

repo: snap-stanford/SATURN


text:
Create Creation of ENS domain

I want you to register a domain for me and upload the token logo in polygon scan. Thank you
Hi! What is your PR about?

[x] Add or edit a skin
[x] Add a custom domain for your space
[x] Add an alias to migrate your space
[x] Add logo for polygonscan https://ibb.co/b6ZmbFz

Your PR will not create an ENS.
Would you like to add a custom domain? https://docs.snapshot.org/spaces/add-custom-domain

Hi, yes I need a custom domain
در تاریخ پنجشنبه ۸ سپتامبر ۲۰۲۲، ۰۹:۰۰ Gokai @.***>
نوشت:

Closed #2222 https://github.com/snapshot-labs/snapshot-spaces/pull/2222.
—
Reply to this email directly, view it on GitHub
https://github.com/snapshot-labs/snapshot-spaces/pull/2222#event-7343938581,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2WBDRKUAXD6LRUFSKUU5S3V5FTXVANCNFSM6AAAAAAQFQBHHE
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

repo: snapshot-labs/snapshot-spaces


text:
Delete verified.json

This file is no longer used and we should update verified/flagged spaces on Sidekick from now.

This can me merged here but do not update this change on Snapshot UI yet, I will do myself.


text:
bug: Rabby wallet trigger when opening a page

I have both Metamask and Rabby wallet in my Chrome browser. When Rabby is locked everytime I open a page on Snapshot or SX it go trigger to unlock, this is support annoying.

Is the Rabby wallet prompt on page load, or only when trying to login ?

On page load

And you're still logged in via Metamask ?

Non

Will resolve via https://github.com/snapshot-labs/lock/issues/109

Can you test https://github.com/snapshot-labs/lock/pull/110 and confirm that it fixes the issue ? Can not reproduce the rabby wallet prompt on my end

Should be fixed via https://github.com/snapshot-labs/sx-monorepo/pull/839

repo: snapshot-labs/sx-monorepo


text:
style: space menu should be hidden on proposal and editor pages

We shouldn't see the space menu on proposal and editor pages

So if we hide menu on proposal page we need somehow to return to space page

Just like we can return from editor with btn

@bonustrack ping

@j0hnfl0w it was like this before, this menu being visible is regression from your PR I believe that refactored how routes are  defined, you can check how it looked like before it.

I tested latest #508 and found following issues:
Extra bar shows up on explore page:

Search proposals shows up on proposal page (actually same as master, because I used the same if check as we had for sidebar).

This tends to have something broken all the time, what do you think of making it a separate PR? It will be easier to review and test if it it's not part of 20 file PR already.

authors: Sekhmet bonustrack j0hnfl0w

repo: snapshot-labs/sx-ui


text:
publish: allow users to sign up for Instagram/publish and publish likes

preview and create likes. preview uses Instagram OEmbed code
because bridgy is not approved, give a sensible error on comment
creation

(I did this as a pull request since it was quite wide-spread and would feel
better having another pair of eyes on it first)
Addresses #326

ok! modulo just a couple nits, and hopefully dropping __getattr__, this lgtm. :+1:

oh, and we'll want to update the about page too! that can be a separate commit though.

ok, I did some local testing of bridgy and a-u instagram, and it looks good to me. the /about changes will be ... a little delicate (not subtle), i'll take a crack at them.

thanks for the manual testing!

authors: kylewm snarfed

repo: snarfed/bridgy


text:
    Added HST and JWST band passes

     * HST : added .dat files for acs and wfc3 bands (plus some nicmos and wfpc2)
     * JWST : added preliminary bands for nircam
     * dirt simple test function added to test_registry

Awesome, looks great!  The test failure is only due to the style checker that gets run automatically. It's pretty easy to fix to conform to the style guidelines using the pep8 checker, but I can do it after merging if you don't want to bother about it.

Clearly I'm still getting the hang of pep8.  I think I got it with 5e6284c.

I love how the docs automatically build these plots: http://sncosmo.readthedocs.org/en/latest/builtins/bandpasses.html but they don't look as good as they used to with the large wavelength range and number of filters of JWST. I'll see if I can do something about that.

@srodney Do you recall how the files for WFC3 UVIS were generated? From  http://www.stsci.edu/hst/wfc3/ins_performance/throughputs/Throughput_Tables it looks like there are two separate transmissions for the two CCDS in the UVIS detector. Are the trasmissions here an average, or just one or the other CCD?

I did a quick check with the F218W filter, and it confirmed my vague recollection:   I used the UVIS2 filter curves.

Thanks for checking!

authors: kbarbary srodney

repo: sncosmo/sncosmo


text:
Allow partial parsing from string

Frequently while using this crate terms, expressions, productions, and grammars are built from their raw type parts:
let t1: Term = Term::Terminal(String::from("terminal"));
let nt1: Term = Term::Nonterminal(String::from("nonterminal"));
let e1: Expression = Expression::from_parts(vec![nt1, t1]);

Productions and Grammars require even more work. It would be convenient and powerful if instead the types could be constructed using the BNF syntax:
let term = Term::from_str("nonterminal").unwrap();
let expression = Expression::from_str("nonterminal terminal").unwrap();
let production = Production::from_str("nonterminal ::= nonterminal terminal | terminal").unwrap();

This could be achieved by implementing the FromStr trait for each type and leveraging existing parsers. Adding this to the Grammar as well would remove the need for the bnf::parse function.
There is however a difficult wrinkle to this problem:

How are terminals and nonterminals differentiated in string format?

A grammar can differentiate between the two by inspecting the full set of productions, but terms in productions and expressions are essentially ambiguous. Maybe some solution brainstorming will help start the discussion:

All terms are terminals until incorporated into a grammar or production that says otherwise
Add a third type of term which represents some "undefined" state

Hopefully @snewt will have some perspective to resolve this block and enable this convenient functionality 🤞

@CrockAgile I agree that this would be a really good add. I also think that we resolve your concern by requiring the same input format all they way down so we can use all the existing parsers, like grammar to string requires nonterminals to be delimited by < and > and terminals to be delimited by " and ". Can we just expect that for the others? For instance:
revise let expression = Expression::from_str("nonterminal terminal").unwrap(); to
let expression = Expression::from_str("<nonterminal> \"terminal\"").unwrap();

@snewt That makes so much sense. Just realized I was thinking about terminals totally wrong. Wooo that makes this very doable. I'll count my question as resolved then and add this to 0.2.0 milestone

Closed by PR #24

authors: CrockAgile snewt

repo: snewt/bnf


text:
Remove Booster parent

Relates to: SB-1318

Looks good in general, I'm just not sure what's the purpose of defining only failsafe plugin version over other plugins such as surefire, compile etc. Wouldn't failsafe version be defined by default just like other plugins?

I defined it in order to remove warnings that it is not defined. So basically I just defined whatever Maven complained about :P

authors: geoand gytis

repo: snowdrop/spring-boot-configmap-booster


text:
SNOW-1474920: Cannot Insert NULL Value into Numeric Columns With .sql When Using Qmark Bindings

Description of Issue
Any attempt to insert a value of None into a column with any of the numeric data types in Snowflake via the .sql Snowpark function and qmark parameter bindings results in the following error:
Traceback (most recent call last):
  Worksheet, line 46, in main
  File "snowflake/snowpark/_internal/telemetry.py", line 144, in wrap
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/dataframe.py", line 597, in collect
    return self._internal_collect_with_tag_no_telemetry(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/dataframe.py", line 645, in _internal_collect_with_tag_no_telemetry
    return self._session._conn.execute(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/_internal/server_connection.py", line 510, in execute
    result_set, result_meta = self.get_result_set(
                              ^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/_internal/analyzer/snowflake_plan.py", line 191, in wrap
    raise ne.with_traceback(tb) from None
  File "snowflake/snowpark/_internal/analyzer/snowflake_plan.py", line 122, in wrap
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/_internal/server_connection.py", line 612, in get_result_set
    result = self.run_query(
             ^^^^^^^^^^^^^^^
  File "snowflake/snowpark/_internal/server_connection.py", line 123, in wrap
    raise ex
  File "snowflake/snowpark/_internal/server_connection.py", line 117, in wrap
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/_internal/server_connection.py", line 417, in run_query
    raise ex
  File "snowflake/snowpark/_internal/server_connection.py", line 402, in run_query
    results_cursor = self.execute_and_notify_query_listener(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/snowpark/_internal/server_connection.py", line 354, in execute_and_notify_query_listener
    results_cursor = self._cursor.execute(query, **kwargs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/connector/cursor.py", line 1016, in execute
    Error.errorhandler_wrapper(
  File "snowflake/connector/errors.py", line 232, in errorhandler_wrapper
    handed_over = Error.hand_to_other_handler(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "snowflake/connector/errors.py", line 287, in hand_to_other_handler
    cursor.errorhandler(connection, cursor, error_class, error_value)
  File "snowflake/connector/errors.py", line 165, in default_errorhandler
    raise error_class(
snowflake.snowpark.exceptions.SnowparkSQLException: (1304): 01b4f2b0-0305-3d30-0005-edc700089236: 100038 (22018): Numeric value 'None' is not recognized

How to Reproduce
I am running my Python code inside of a Python Worksheet that I am accessing on Snowflake itself (app.snowflake.com), my account is through my job. I apologize if that makes reproducing results difficult, and I am using snowflake-snowpark-python==1.16.0 because that is the latest that is available to me on my Snowflake worksheets.
What version of Python are you using?
3.11
What operating system and processor architecture are you using?
Linux-5.4.181-99.354.amzn2.aarch64-aarch64-with-glibc2.34
What are the component versions in the environment (pip freeze)?
bottleneck==1.3.7
cloudpickle==2.2.1
numexpr==2.8.4
numpy==1.24.3
pandas==2.2.1
pyarrow==14.0.2
python-dateutil==2.8.3+snowflake1
pytz==2024.1
pyyaml==6.0.1
setuptools==69.5.1
six==1.16.0
snowflake-connector-python==0.28.0
snowflake-snowpark-python==1.16.0
typing-extensions==4.11.0
tzdata==2023.3
wheel==0.43.0

What did you do?
Below is the simplest code snippet I could create to reproduce the error, and it will run inside of a Snowflake worksheet as soon as you change the my_db and my_schema parameters at the top to point to your Database and Schema. I've written a comment so you can see which line triggers the error.
import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col

def main(session: snowpark.Session):

    # Define these to match your env, table name can be anything
    my_db = "MY_DATABASE"
    my_schema = "MY_SCHEMA"
    my_table_name = "TEST_TABLE_NULLABILITY"

    # Create the table with a NUMBER column that can take nulls
    drop_table_sql = f"DROP TABLE IF EXISTS {my_db}.{my_schema}.{my_table_name};"
    _ = session.sql(drop_table_sql).collect()

    create_table_sql = f"""
        CREATE TABLE {my_db}.{my_schema}.{my_table_name} (
            ID NUMBER NULL
        );
    """
    _ = session.sql(create_table_sql).collect()

    # Confirm that the column is nullable
    check_nullability_sql = f"""
        SELECT IS_NULLABLE
        FROM {my_db}.INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = '{my_table_name}'
        AND TABLE_SCHEMA = '{my_schema}';
    """

    is_nullable = session.sql(check_nullability_sql).collect()[0][0]

    if is_nullable == "NO":
        raise ValueError("Column is not nullable, this should not happen.")

    # Attempt to write SQL that inserts a None into the table
    null_insert_sql = f"""
        INSERT INTO {my_db}.{my_schema}.{my_table_name} (ID)
        VALUES (?);
    """
    parameters = [None]

    # THIS LINE WILL ERROR!!!
    _ = session.sql(null_insert_sql, params=parameters).collect()
    # THIS LINE WILL ERROR!!!

    return "SUCCESS!"

What did you expect to see?
All numeric data types (NUMBER, FLOAT, INT, DOUBLE) result in the code erroring out, but this should not be happening. Running the exact same script with VARCHAR as the data type instead of NUMBER results in the code succeeding and successfully inserting a null value into the table for the ID column. Additionally, if you just hardcode NULL instead of using the safe qmark parameter bindings for the .sql call, the code does not error and successfully inserts a null value into the table for the ID column:
import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col

def main(session: snowpark.Session):

    my_db = "MY_DATABASE"
    my_schema = "MY_SCHEMA"
    my_table_name = "TEST_TABLE_NULLABILITY"

    # Create the table with a NUMBER column that can take nulls
    drop_table_sql = f"DROP TABLE IF EXISTS {my_db}.{my_schema}.{my_table_name};"
    _ = session.sql(query=drop_table_sql).collect()

    create_table_sql = f"""
        CREATE TABLE {my_db}.{my_schema}.{my_table_name} (
            ID NUMBER NULL
        );
    """
    _ = session.sql(query=create_table_sql).collect()

    # Confirm that the column is nullable
    check_nullability_sql = f"""
        SELECT IS_NULLABLE
        FROM {my_db}.INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = '{my_table_name}'
        AND TABLE_SCHEMA = '{my_schema}';
    """

    is_nullable = session.sql(query=check_nullability_sql).collect()[0][0]

    if is_nullable == "NO":
        raise ValueError("Column is not nullable, this should not happen.")

    # Attempt to write SQL that inserts a None into the table
    null_insert_sql = f"""
        INSERT INTO {my_db}.{my_schema}.{my_table_name} (ID)
        VALUES (NULL);
    """

    # THIS LINE WILL NOW SUCCEED!!!
    _ = session.sql(query=null_insert_sql).collect()
    # THIS LINE WILL NOW SUCCEED!!!

    return "SUCCESS!"

Can you set logging to DEBUG and collect the logs?
I've attached a log from the execution of my above script that errors out:
2024-06-11 16:35:47,821 - Dummy-1 server_connection.py:405 - run_query() - DEBUG - Execute query [queryID: 01b4f2a7-0305-3d26-0005-edc7000813c6] DROP TABLE IF EXISTS MY_DATABASE.MY_SCHEMA.TEST_TABLE_NULLABILITY;
2024-06-11 16:35:47,821 - Dummy-1 result_set.py:65 - result_set_iterator() - DEBUG - beginning to schedule result batch downloads
2024-06-11 16:35:47,821 - Dummy-1 result_set.py:128 - _report_metrics() - DEBUG - Reporting metrics not supported
2024-06-11 16:35:47,822 - Dummy-1 cursor.py:880 - execute() - DEBUG - executing SQL/command
2024-06-11 16:35:47,822 - Dummy-1 cursor.py:953 - execute() - INFO - query: [CREATE TABLE MY_DATABASE.MY_SCHEMA.TEST_TABLE_NULLABILITY ( ID NUMBER NULL );...]
2024-06-11 16:35:47,822 - Dummy-1 connection.py:509 - _next_sequence_counter() - DEBUG - sequence counter: 3
2024-06-11 16:35:47,823 - Dummy-1 cursor.py:591 - _execute_helper() - DEBUG - Request id: 04cd6893-9593-4c24-84ad-139e24fad72a
2024-06-11 16:35:47,823 - Dummy-1 cursor.py:594 - _execute_helper() - DEBUG - running query [CREATE TABLE MY_DATABASE.MY_SCHEMA.TEST_TABLE_NULLABILITY ( ID NUMBER NULL );...]
2024-06-11 16:35:47,823 - Dummy-1 cursor.py:603 - _execute_helper() - DEBUG - is_file_transfer: False
2024-06-11 16:35:47,823 - Dummy-1 cursor.py:643 - _execute_helper() - DEBUG - Failed to set SIGINT handler. Not in main thread. Ignored...
2024-06-11 16:35:47,971 - Dummy-1 cursor.py:665 - _execute_helper() - DEBUG - Failed to reset SIGINT handler. Not in main thread. Ignored...
2024-06-11 16:35:47,971 - Dummy-1 cursor.py:960 - execute() - DEBUG - sfqid: 01b4f2a7-0305-3d26-0005-edc7000813ca
2024-06-11 16:35:47,971 - Dummy-1 cursor.py:966 - execute() - INFO - query execution done
2024-06-11 16:35:47,971 - Dummy-1 cursor.py:971 - execute() - DEBUG - SUCCESS
2024-06-11 16:35:47,971 - Dummy-1 cursor.py:1076 - _init_result_and_meta() - DEBUG - Query result format: json
2024-06-11 16:35:47,971 - Dummy-1 result_batch.py:444 - _parse() - DEBUG - parsing for result batch id: 1
2024-06-11 16:35:47,971 - Dummy-1 server_connection.py:405 - run_query() - DEBUG - Execute query [queryID: 01b4f2a7-0305-3d26-0005-edc7000813ca]
        CREATE TABLE MY_DATABASE.MY_SCHEMA.TEST_TABLE_NULLABILITY (
            ID NUMBER NULL
        );

2024-06-11 16:35:47,971 - Dummy-1 result_set.py:65 - result_set_iterator() - DEBUG - beginning to schedule result batch downloads
2024-06-11 16:35:47,971 - Dummy-1 result_set.py:128 - _report_metrics() - DEBUG - Reporting metrics not supported
2024-06-11 16:35:47,972 - Dummy-1 cursor.py:880 - execute() - DEBUG - executing SQL/command
2024-06-11 16:35:47,973 - Dummy-1 cursor.py:953 - execute() - INFO - query: [SELECT IS_NULLABLE FROM MY_DATABASE.INFORMATION_SCHEMA.COLUMNS WHERE T...]
2024-06-11 16:35:47,973 - Dummy-1 connection.py:509 - _next_sequence_counter() - DEBUG - sequence counter: 4
2024-06-11 16:35:47,973 - Dummy-1 cursor.py:591 - _execute_helper() - DEBUG - Request id: 380c9e62-ca42-45dc-86eb-e3d93e0c9c39
2024-06-11 16:35:47,973 - Dummy-1 cursor.py:594 - _execute_helper() - DEBUG - running query [SELECT IS_NULLABLE FROM MY_DATABASE.INFORMATION_SCHEMA.COLUMNS WHERE T...]
2024-06-11 16:35:47,973 - Dummy-1 cursor.py:603 - _execute_helper() - DEBUG - is_file_transfer: False
2024-06-11 16:35:47,973 - Dummy-1 cursor.py:643 - _execute_helper() - DEBUG - Failed to set SIGINT handler. Not in main thread. Ignored...
2024-06-11 16:35:48,946 - Dummy-1 cursor.py:665 - _execute_helper() - DEBUG - Failed to reset SIGINT handler. Not in main thread. Ignored...
2024-06-11 16:35:48,946 - Dummy-1 cursor.py:960 - execute() - DEBUG - sfqid: 01b4f2a7-0305-3d26-0005-edc7000813ce
2024-06-11 16:35:48,946 - Dummy-1 cursor.py:966 - execute() - INFO - query execution done
2024-06-11 16:35:48,946 - Dummy-1 cursor.py:971 - execute() - DEBUG - SUCCESS
2024-06-11 16:35:48,946 - Dummy-1 cursor.py:1076 - _init_result_and_meta() - DEBUG - Query result format: arrow
2024-06-11 16:35:48,946 - Dummy-1 server_connection.py:405 - run_query() - DEBUG - Execute query [queryID: 01b4f2a7-0305-3d26-0005-edc7000813ce]
        SELECT IS_NULLABLE
        FROM MY_DATABASE.INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = 'TEST_TABLE_NULLABILITY'
        AND TABLE_SCHEMA = 'DL';

2024-06-11 16:35:48,946 - Dummy-1 result_batch.py:73 - _create_nanoarrow_iterator() - DEBUG - Using nanoarrow as the arrow data converter
2024-06-11 16:35:48,946 - Dummy-1 result_set.py:65 - result_set_iterator() - DEBUG - beginning to schedule result batch downloads
2024-06-11 16:35:48,946 - Dummy-1 result_set.py:128 - _report_metrics() - DEBUG - Reporting metrics not supported
2024-06-11 16:35:48,947 - Dummy-1 cursor.py:880 - execute() - DEBUG - executing SQL/command
2024-06-11 16:35:48,947 - Dummy-1 connection.py:751 - _process_params_qmarks() - DEBUG - idx: 1, type: ANY
2024-06-11 16:35:48,947 - Dummy-1 cursor.py:953 - execute() - INFO - query: [INSERT INTO MY_DATABASE.MY_SCHEMA.TEST_TABLE_NULLABILITY (ID) VALUES (?);]
2024-06-11 16:35:48,947 - Dummy-1 connection.py:509 - _next_sequence_counter() - DEBUG - sequence counter: 5
2024-06-11 16:35:48,947 - Dummy-1 cursor.py:591 - _execute_helper() - DEBUG - Request id: 4d2e84bf-a367-45b8-a645-d99d2bc58e28
2024-06-11 16:35:48,948 - Dummy-1 cursor.py:594 - _execute_helper() - DEBUG - running query [INSERT INTO MY_DATABASE.MY_SCHEMA.TEST_TABLE_NULLABILITY (ID) VALUES (?);]
2024-06-11 16:35:48,948 - Dummy-1 cursor.py:603 - _execute_helper() - DEBUG - is_file_transfer: False
2024-06-11 16:35:48,948 - Dummy-1 cursor.py:643 - _execute_helper() - DEBUG - Failed to set SIGINT handler. Not in main thread. Ignored...
2024-06-11 16:35:49,197 - Dummy-1 cursor.py:665 - _execute_helper() - DEBUG - Failed to reset SIGINT handler. Not in main thread. Ignored...
2024-06-11 16:35:49,197 - Dummy-1 cursor.py:960 - execute() - DEBUG - sfqid: 01b4f2a7-0305-3d26-0005-edc7000813d2
2024-06-11 16:35:49,197 - Dummy-1 cursor.py:966 - execute() - INFO - query execution done
2024-06-11 16:35:49,197 - Dummy-1 cursor.py:1004 - execute() - DEBUG - {'data': {'internalError': False, 'errorCode': '100038', 'age': 0, 'sqlState': '22018', 'queryId': '01b4f2a7-0305-3d26-0005-edc7000813d2'}, 'code': '100038', 'message': "Numeric value 'None' is not recognized", 'success': False, 'headers': None}
2024-06-11 16:35:49,199 - Dummy-1 errors.py:145 - exception_telemetry() - DEBUG - Sending exception telemetry failed

Please let me know if there is anything else that I can provide.

Hello @AidanShipperley ,
Thanks for raising the issue, we are looking into it, will update.
Regards,
Sujan

Hello @AidanShipperley ,
The same code works in Jupyter with snowpark.
session.sql("insert into  TEST_TABLE_NULLABILITY (ID) VALUES (?)", params=[None]).collect()
It seems the issue with Python worksheet where it's not treating the query as Direct SQL Embedding
Example:  INSERT INTO TEST_TABLE_NULLABILITY (ID) VALUES (NULL)
Snowpark for Python expects direct SQL syntax with the appropriate values embedded directly or bound using Snowflake's DataFrame API.
Example:
`data = [(None,)]
schema = StructType([StructField("ID", IntegerType())])
df = session.create_dataframe(data, schema=schema)
Insert DataFrame into the table
df.write.save_as_table("TEST_TABLE_NULLABILITY", mode="append")
Verify the data
result = session.table("TEST_TABLE_NULLABILITY").collect()
for row in result:
print(row)
We are checking and will update further.
Regards,
Sujan
Output: `Row(ID=None)

authors: AidanShipperley sfc-gh-sghosh

repo: snowflakedb/snowpark-python


text:
🐛 BUG: snowpack tries to import typescript files as js files, while using a workspace

Quick checklist

[X] I am using the latest version of Snowpack and all plugins.

What package manager are you using?
pnpm
What operating system are you using?
Linux
Describe the bug
While using Astro js (which builds on top of snowpack), I tried importing linked workspace packages whose main files are typescript files, when building Astro I got this error message,
pnpx astro build && pnpx astro dev
[config] Set "buildOptions.site" to generate correct canonical URLs and sitemap
[23:55:28] [snowpack] Ready!
[build] ! building pages...

warn - You have enabled the JIT engine which is currently in preview.
warn - Preview features are not covered by semver, may introduce breaking changes, and can change at any time.

warn - You have enabled the JIT engine which is currently in preview.
warn - Preview features are not covered by semver, may introduce breaking changes, and can change at any time.
[build] ✔ pages built.

[build] ! optimizing css...
warn - You have enabled the JIT engine which is currently in preview.
warn - Preview features are not covered by semver, may introduce breaking changes, and can change at any time.
[build] ✔ css optimized.
[build] ! copying public folder...
[build] ✔ public folder copied.
[build] ! bundling...
[23:55:32] [snowpack] path-to-regexp: Unscannable package import found.
Snowpack scans source files for package imports at startup, and on every change.
But, sometimes an import gets added during the build process, invisible to our file scanner.
We'll prepare this package for you now, but should add "path-to-regexp" to "knownEntrypoints"
in your config file so that this gets prepared with the rest of your imports during startup.
[23:55:32] [snowpack] path-to-regexp: Unscannable package import found.
Snowpack scans source files for package imports at startup, and on every change.
But, sometimes an import gets added during the build process, invisible to our file scanner.
We'll prepare this package for you now, but should add "path-to-regexp" to "knownEntrypoints"
in your config file so that this gets prepared with the rest of your imports during startup.
[23:55:32] [snowpack] Build Result Error: There was a problem with a file build result.
[build] [Error: Could not load /_snowpack/link/workspaces/native/packages/native/src/app.js (imported by ../../_snowpack/link/workspaces/native/packages/native/src/api.js): ENOENT: no such file or directory, open '/_snowpack/link/workspaces/native/packages/native/src/app.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/_snowpack/link/workspaces/native/packages/native/src/app.js',
  watchFiles: [
    '/_astro_frontend/hydrate/idle.js',
    '/theme.js',
    '/scripts/main.js',
    '/_astro/src/components/ThemeToggle.js',
    '/_astro/src/components/DocSidebar.js',
    '/_snowpack/pkg/@astrojs.renderer-preact.client.v0.1.3.js',
    '/_snowpack/link/workspaces/native/packages/native/src/api.js',
    '/scripts/transitions/Fade.js',
    '/scripts/transitions/BigTransition.js',
    '/scripts/transitions/Slide.js',
    '/_snowpack/pkg/preact.v10.5.14.js',
    '/_snowpack/pkg/preact.hooks.v10.5.14.js',
    '/_astro/src/components/EditOnGithub.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/api.js',
    '/_snowpack/pkg/@astrojs/renderer-preact.v0.1.3/common/static-html-4514376e.js',
    '/_snowpack/link/workspaces/native/packages/native/src/config.js',
    '/_snowpack/link/workspaces/native/packages/native/src/manager.js',
    '/_snowpack/link/workspaces/native/packages/native/src/url.js',
    '/_snowpack/link/workspaces/native/packages/native/src/history.js',
    '/_snowpack/link/workspaces/native/packages/native/src/page.js',
    '/_snowpack/link/workspaces/native/packages/native/src/service.js',
    '/_snowpack/link/workspaces/native/packages/native/src/transition.js',
    '/_snowpack/link/workspaces/native/packages/native/src/app.js',
    '/_snowpack/link/workspaces/native/packages/native/src/pjax.js',
    '/_snowpack/link/workspaces/native/packages/native/src/router.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/types.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/utils.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/builtin-effects.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/css-properties.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/custom-easing.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/animate.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/empty-tween.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/stagger-and-random.js',
    '/_snowpack/link/workspaces/native/packages/animate/src/timeline.js',
    '/_snowpack/link/workspaces/native/packages/manager/src/api.js'
  ]
}

The problem is that all the _snowpack/link/workspaces/... js files are supposed to be typescript files, however, when snowpack bundles the files it treats them as js files.
Steps to reproduce

Set up a linked pnpm Workspace, with one package using the workspace protocol
Set the package's main file (the main file set in the package.json), to a typescript file
Set up a couple different typescript files, and import them into the main file
Install astro using the docs template
Setup a typescript file, which imports your package
Include this typescript file, in your Main.astro file
Run astro build
The Error stated above should occur. I expect snowpack to be able to discern typescript files and js files, and import them accordingly.

You can try it out on Gitpod,

Link to minimal reproducible example (optional)
https://github.com/okikio/astro-build

I feel this error might be related to #3119

After some more research I've found that Snowpack requires that all linked packages be installed in the root directory. I feel either this is a bug, or this behavior is not well documented.

repo: snowpackjs/snowpack


text:
Fix snowpack add/rm for npm packages with @ prefix

Changes
Correctly modify snowpack.deps.json after running snowpack add with npm organization packages
Example of what was happening before, when running snowpack add @pixi/app:
{
  "dependencies": {
    "": "pixi/app"
  },
  "lock": {
    "#pixi/app": "@pixi/app@v5.3.7-fJizkk0by9r3PZhxGwya"
  }
}

After applying the fix and running local snowpack:
{
  "dependencies": {
    "@pixi/app": "^5.3.7"
  },
  "lock": {
    "@pixi/app#^5.3.7": "@pixi/app@v5.3.7-fJizkk0by9r3PZhxGwya"
  }
}

Testing
I didn't see any existing tests for the add/rm commands so I didn't add any here now.
However, running it myself locally produces expected results with both org and non-org packages
Docs
Bug fix only

It would be awesome if this could be merged!  Thanks for the great work, I almost submitted this same PR myself.

I believe this fixes #2665

Awesome! Thanks for the PR 👍

authors: FredKSchott rthadr shamblesides


text:
EmrEtlRunner: use S3DistCp not Sluice for staging step

We may be able to use S3DistCp for all collector_formats (including tricky ones like Urban Airship, which was authored by @ninjabear). S3DistCp's manifests option may be useful here.
If we can't, then we do still need to move this step out of EmrEtlRunner, so one option would be to build a tiny file moving binary and call that as a jobflow step. So kind of like a poor man's, master node-only S3DistCp, specific to one or more of our collector_formats. But anything can move to S3DistCp should.

Blocked by #1775

Here's the brute force way of doing things I came up with:

keep the original folder structures (no flattening): as a result there wouldn't be any overwrite and we would have to glob the input path of the enrich step
handle the --end and --start flags on a per collector format basis

Advantages:

everything is s3distcp
fairly generic (if we wish to add another format, we don't have to write and support another script or binary)

Drawbacks:

no renaming, correct me if I'm wrong but since our folder structure is not flattened that wouldn't be an issue

Would love feedback as I don't know if the file renaming serve other purposes.

Hey @BenFradet - TBH I am happy to drop the --end and --start arguments - we have never used these (although I know a few in the community did) and I think they have outlived their purpose and are unnecessarily complicated.
I don't think the renaming is essential. We just need to be careful that the sub-folder structure is preserved through the pipeline to prevent accidental overwrites.

The sub-folder structure will be fairly short-lived as it'll only be persisted up to enrich which will have a flat output just like right now.
I'll create a ticket for removing --end and --start then :+1: .

Right - but the sub-folder structure needs to be persisted when archiving the raw files out of staging...

True, that's something I haven't investigated yet.

authors: BenFradet alexanderdean

repo: snowplow/snowplow


text:
Regarding gRASPA-fast version

Hello,
First of all, thanks for this simulation software, as it is gonna help me a lot for especially computationally demanding simulations.
I wanted to have a look at gRASPA and gRASPA-fast simulations. Comparing examples given in the packages released, only difference I saw is that "UseMaxStep yes" in the gRASPA-fast. I saw other parameters regarding Widom, and Gibbs, but since I am only interested in GCMC simulations, I didn't think they are related to.
So my questions are;
(i) Is there any other difference that I should be careful about?
(ii) If there is, should there be any other additional github packages that I need to compile for using gRASPA-fast?
Thanks for your response in advance!

Hi,
Thanks for your interest. gRASPA-fast (available in the releases here) is slightly (about 20%) faster than gRASPA.

the "fast" one can only do single-component GCMC (not mixtures); it outputs only the total energies but not the decomposed energies (framework-framework, framework-adsorbate, adsorbate-adsorbate). The supported features are listed in the table in readme.
Compilation is almost the same; there should be a compilation file in the release; you just need to execute it. You need an NVHPC compiler

Thank you so much for your quick response! All the best!

repo: snurr-group/gRASPA


text:
Please explain the name

Love this gem! I'm wondering what the name means and whether you could explain it in the main README.

AFAIK it originates from:

Proc
And a general "superhero movie scheme" we used for lots of datamapper 2.0 support gems. Materials, imaginary hero names themselve etc: Siblings are: inflecto, adamantium, ice_nine, anima, concord, ...

OT: If you like procto check these out.

There is also mutant

For better or worse, it makes me think of proctology...

authors: jayqui-omada mbj

repo: snusnu/procto


text:
chore: secrets scanning

Adds secrets scanning to the repository via CICD and pre-commit hooks.

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

authors: CLAassistant dragos-cojocari

repo: snyk/driftctl-action


text:
webapp: Would like more categories than Incomplete/Done/Unusable

I think the webapp would be a good record of past talks and why the videos exist or don't exist.
Thinking ahead to additional categories to label the talks.

Unusable due to video quality

audio is bad
video is bad
it's missing chunks or cut-off.

Unusable because it is a BoF

maybe we could filter the BoFs out of the list of talks that the web app recognizes

Don't publish

Need manual editing

What is BoF?
Considering adding a notes field to each talk, then it's infinitely flexible. Unusable will be catch-all status, ideally with notes explaining why.

Ok, there's a notes field for each talk now. Editable by any role until cut is approved, then only editable by reviewers and admins.

authors: EaterOA ldang

repo: socallinuxexpo/scale-av-cutter

license: WTFPL


text:
Argentina(AR) number formatting and validation errors

I've been using this library for a few years, but there are errors to format and validate Argentina numbers.
A formatted national number of AR by the library is invalid and not formatted again properly.
The only difference of result is 'italian_leading_zero: true' at second formatting.
Could you check it? Thanks. :)
Initial formatting
iex> {:ok, phone_number} = ExPhoneNumber.parse("+54 114321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: nil,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}

iex> ExPhoneNumber.format(phone_number, :national)
"011 4321-1200"

iex> ExPhoneNumber.is_valid_number?(phone_number)
true

Second formatting
iex> {:ok, phone_number} = ExPhoneNumber.parse("011 4321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: true,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}

iex> ExPhoneNumber.format(phone_number, :national)
"01143211200"

iex> ExPhoneNumber.is_valid_number?(phone_number)
false

Google's libphonenumber library has no problem.
Java version(linked on libphonenumber) result with same AR phone number above.
https://libphonenumber.appspot.com/phonenumberparser?number=011 4321-1200&country=AR
It returns 'italian_leading_zero' false but ex_phone_number does not (It returns true).
I suppose this difference might cause an error.
I have been using Ruby version (https://github.com/daddyz/phonelib) and Golang version (https://github.com/nyaruka/phonenumbers) but they works fine with AR phone numbers.

Thanks for your research.
Does upgrading PhoneNumberMetadata.xml (replacing the current one with the one I linked from Google) fix the issues you are having? Could you then create a PR that would include tests that show if your issues is present and upgrade that XML file?

I'm not sure I've done right but replacing current PhoneNumberMetadata.xml and PhoneNumberMetadataForTesting with Google's makes validation worse.
AR phone numbers are still returned invalid and other countries either.
iex(1)> {:ok, phone_number} = ExPhoneNumber.parse("+54 114321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: nil,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(2)> ExPhoneNumber.format(phone_number, :national)
"011 4321-1200"
iex(3)> ExPhoneNumber.is_valid_number?(phone_number)
false

iex(4)> {:ok, phone_number} = ExPhoneNumber.parse("011 4321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: true,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(5)> ExPhoneNumber.format(phone_number, :national)
"01143211200"
iex(6)> ExPhoneNumber.is_valid_number?(phone_number)
false

iex(7)> {:ok, phone_number} = ExPhoneNumber.parse("555-555-5555", "US")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 1,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: nil,
   national_number: 5555555555,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(8)> ExPhoneNumber.format(phone_number, :national)
"(555) 555-5555"
iex(9)> ExPhoneNumber.is_valid_number?(phone_number)
false

Moreover, there is an exception error on a UK phone number like below.
The number is 01131688131 and it is a valid number.
 an exception was raised:
    ** (FunctionClauseError) no function clause matching in Regex.run/3
        (elixir) lib/regex.ex:279: Regex.run(nil, "1131688131", [return: :index])
        (ex_phone_number) lib/ex_phone_number/validation.ex:119: ExPhoneNumber.Validation.test_number_length_against_pattern/2
        (ex_phone_number) lib/ex_phone_number/validation.ex:87: ExPhoneNumber.Validation.is_shorter_than_possible_normal_number?/2
        (ex_phone_number) lib/ex_phone_number/parsing.ex:117: ExPhoneNumber.Parsing.parse_helper/4
...

I think that replacing raw Metadata can't solve the problem. It might require some refactoring work.

I think that replacing raw Metadata can't solve the problem.

Yes, the data you provided above proves this.

It might require some refactoring work.

I think you mean re-engineering or fixing.
I also think that you seem well versed in this topic (you know how to test those matters) and because of this I think you are capable of doing the fix. Is that possible that you would find the time to design and implement a solution? I will be happy to review your work and help out.

In https://github.com/socialpaymentsbv/ex_phone_number/pull/27 the XML Metadata was updated. Could you check if this resolves your issues?

And from your first post:
iex(14)> ExPhoneNumber.parse("+54 114321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: nil,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(15)>  ExPhoneNumber.format(phone_number, :national)
"0113 168 8131"
iex(16)> ExPhoneNumber.is_valid_number?(phone_number)
true
iex(17)>  ExPhoneNumber.parse("011 4321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: true,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(18)> ExPhoneNumber.format(phone_number, :national)
"0113 168 8131"
iex(19)> ExPhoneNumber.is_valid_number?(phone_number)
true
``

And from your first post:
iex(14)> ExPhoneNumber.parse("+54 114321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: nil,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(15)>  ExPhoneNumber.format(phone_number, :national)
"0113 168 8131"
iex(16)> ExPhoneNumber.is_valid_number?(phone_number)
true
iex(17)>  ExPhoneNumber.parse("011 4321-1200", "AR")
{:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: true,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
iex(18)> ExPhoneNumber.format(phone_number, :national)
"0113 168 8131"
iex(19)> ExPhoneNumber.is_valid_number?(phone_number)
true
``

Thanks for checking. I now have also read it all and I confirm that we have still this bug here.

I thank you for suggesting but refactoring all country's code is out of my capability.

As we have recently updated the metadata (XML).

I'll try to fix AR phone numbers errors first and request to pull later. :)

Now it should be much easier for to try fixing the part of the code that is causing this issues.

Okay, I'll try checking AR phone number format code.
Thanks for updating metadata (XML). 😃

Was trying to see what was going on here so I was able to reproduce the original issue with iex. Then I added a test to validation_test.exs to investigate
    context "test AR number" do
      it "returns true" do
        assert {:ok, phone_number} =
                 ExPhoneNumber.parse("011 4321-1200", "AR")
                 |> IO.inspect(label: "phone_number")

        assert is_valid_number?(phone_number)
               |> IO.inspect(label: "is_valid_number?")
      end
    end

This test passes which is weird. I get a different result from parse() than in iex
phone_number: {:ok,
 %ExPhoneNumber.Model.PhoneNumber{
   country_code: 54,
   country_code_source: nil,
   extension: nil,
   italian_leading_zero: nil,
   national_number: 1143211200,
   number_of_leading_zeros: nil,
   preferred_domestic_carrier_code: nil,
   raw_input: nil
 }}
is_valid_number?: true

Only difference is italian_leading_zero: nil. Not sure if I'm doing something wrong here.

Closing for now as #43 may fix those issues. If after doing #43 those issues will still prevail we can reopen.

authors: byungjikroh ideaMarcos szymon-jez


text:
Feature Request enchanced MemCardPro support

The XStation ODE has the ability to send a command to the MemCardPro to switch virtual memory card slots. If TonyHax could add this feature too it'd be super cool.
Also it'd allow for seamless integration with the FreePSXboot hack cause you can get it to switch off from the FreePSXboot card automatically, preventing the system from locking up on boot.
TBH if this feature was added, the combo of TonyHax + FreePSXBoot + MemCardPro is something I'd use for every PSX game I play even for retail games just because it'd automatically set the virtual memcard for me.
In terms how how this would be done, that I don't know. I'm still trying to find any documentation on what memorycard signals need to be sent to the card to get it to switch and how to send it the game ID so it can manage the filenames automatically.
I'll post back when I find more info. If I can't find anything I can also get the contact information of the MemCardPro guys for you if you want me to.
In theory it should be a simple thing to add.
Thanks for taking the time to read this request.

https://gitlab.com/chriz2600/ps1-game-id-transmission
Here's some info on the code needed for memcardpro support

There's also this in particular:

+1

I was playing around with some code that involved reading memory cards from within the Tonyhax International loader at one point, it's not hard to implement it (just call the Bios functions explicitly like other functions). The issue I think is that neither me or socram8888 actually have a memcardpro.

Well, if the development is relatively low risk and trivial, you could create a pull request and people like t9999clint or others could test it.

As @alex-free correctly pointed I don't have one. I'm not really interested in spending my time implementing and debugging a feature I'll never use.
This is an open source project on the other hand, so if anyone that owns one wants this feature, feel free to implement it (or pay someone to do it) and make a PR.

As @alex-free correctly pointed I don't have one. I'm not really interested in spending my time implementing and debugging a feature I'll never use.
This is an open source project on the other hand, so if anyone that owns one wants this feature, feel free to implement it (or pay someone to do it) and make a PR.

Ditto. I have a few PS2 consoles, a 32GB flash drive that’s PS2 compatible, and 5 PSX memory cards… I really don’t need to buy a memcardpro (but maybe if money wasn’t so tight I would to try this).

The point is understandable. I dropped an email at 8bitmods to see if they are interested in sponsoring the effort.

I took a few minutes last week to see if I could setup a dev environment so I could build Tonyhax locally first but without success. My CPU doesn't have what it takes to virtualize Ubuntu on Windows. I'm afraid I'll need to go the virtual box way since I cannot use docker as well.
If anybody has some sort of recommendations or tips I would take them.

If you're running a modern Win 10 installation, you should be able to use the Windows Subsystem for Linux (WSL) as I do

Could also use a Debian or Ubuntu Live CD/Live USB, works just fine for the original Tonyhax.

Ive added support for MCPro/SD2PSX here, using the library from Cybdyn (https://github.com/Cybdyn-Systems/MemCardPro-ASM)
https://github.com/danhans42/tonyhax_mcp
Tested only using an SD2PSX (I dont own a MCPro). Also so far, havent tried booting from the SD2PSX so it needs further testing.

Ive added support for MCPro/SD2PSX, using the library from Cybdyn (https://github.com/Cybdyn-Systems/MemCardPro-ASM)
https://github.com/danhans42/tonyhax_mcp
Tested only using an SD2PSX (I dont own a MCPro). Also so far, havent tried booting from the SD2PSX so it needs further testing.
Works with a device in slot 1. Doesnt communicate with slot 2

I implemented your code into an experimental build of Tonyhax international. I have someone willing to test it out since I have neither a memcardpro or a sd2psx. If you could test it out as well that would be amazing. https://github.com/alex-free/tonyhax/issues/64#issuecomment-2303546454

I just tested it out like you asked.
In summary,

I have a memcardpro v1 (not v2) and the "Load last card when MemCard Boots" option DISABLED (so it always boots the first memory card)
I took the freepsxboot tonyhax_scph-9001_slot1.mcr file version from the special build version 1.5.3 (BETA)
I had to rename the extension to .mcd for Memcardpro to recognize it
I put it on my memcardpro through FTP as the first memory card in slot 1
I booted my PS1 with the CD cover opened, a copied CD-rom game in and with my memcardpro in slot 1
I entered the memory card manager to trigger the jailbreak
tonyhax loaded successfully, then the copied CD-rom game and then I could see the memcardpro loaded the proper savegame on the tiny screen
I tried with 2 different games (a legit CD-rom and a copy) and both worked

In other words, it seems to work wonder. Great job 🎉

My PSX is dead at the moment so I haven't been able to test it, but I did ask around a few places to see if anyone else was willing to check it out.
Glad to see that the feature seems to be working now, thanks for all your hard work.