Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/adds activities providers #759

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

spacether
Copy link

@spacether spacether commented Feb 2, 2025

What was changed

  • I added two methods (ActivitiesProvider.get_activities_from_instance + ActivitiesProvider.get_activities_from_cls) to get activities from classes that inherit from ActivitiesProvider
  • I added the function get_activities to get activities from a python module
  • tests are added of the two new methods and the 1 new function

Why?

These are useful to my code base to extract activities from classes and module

Checklist

  1. Closes [Feature Request] Suggest Providing activities extraction utilities to get them from a class and a module #758

  2. How was this tested:

  • I added tests of the new functionality; they all pass
  1. Any docs updates needed?
    Yes, not sure where docs are generated from, where should this be added?

@spacether spacether requested a review from a team as a code owner February 2, 2025 22:58
@CLAassistant
Copy link

CLAassistant commented Feb 2, 2025

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link

CLA assistant check
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.

Copy link
Member

@cretz cretz Feb 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hrmm, I think many users that need activity discovery are using their own decorators and capturing in a big list/dict. If we want to make activity discovery more explicit, we should also consider providing other definition information such as the name, whether they have disabled thread-raise on cancel, etc.

Also, many people use different activities in different workers in the same process, so not sure it makes sense to have a "provider" API as if there is only one worker and all activities will belong to it. Users need to individually choose which activities to give to which workers.

I could see maybe exposing the activity definition and could see maybe exposing a way to get all known definitions that provide a @activity.defn decorator, but in general different users combine/collect activities in different ways and I'm not sure we want a "blessed" one.

Copy link
Author

@spacether spacether Feb 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It covers my use cases and I am only one user. Is there any way that we can ask devs and get numbers from the community on if they want this MR or something like it?

Also not suggesting that this will work for all users, only some.

Copy link
Member

@cretz cretz Feb 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately with our open source nature it is hard to gauge interest unless it is something that is a pain point for users. I do think we could consider exposing all activity definitions in a static/global way, though that's not the same thing as a list you may want to map to callables and then pass into a worker. We have not done this traditionally in any other SDK, instead relying on users to collect their activities in their preferred way (though we have integrated with things like Sprint Boot in Java).

Copy link
Author

@spacether spacether Feb 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have a Slack temporal community with +7,500 members in the #python-sdk, channel, may I ask them there?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Suggest Providing activities extraction utilities to get them from a class and a module
3 participants