Skip to content

Conversation

AbishekS
Copy link
Contributor

Summary:
Introduces enum for auto aliasing based on casing for the runopt nam

    class AutoAlias(IntEnum):
        snake_case = 0x1
        SNAKE_CASE = 0x2
        camelCase = 0x4

So user can extend name to be used as

        opts.add(
            ["job_priority", runopt.AutoAlias.camelCase],
            type_=str,
            help="run as user",
        )
        opts.add(
            [
                "model_type_name",
                runopt.AutoAlias.camelCase | runopt.AutoAlias.SNAKE_CASE,
            ],
            type_=str,
            help="run as user",
        )

This should automatically produce additional aliases of jobPriority to job_priority and produce modelTypeName and MODEL_TYPE_NAME for model_type_name

Differential Revision: D84192560

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 10, 2025
Copy link

meta-codesync bot commented Oct 10, 2025

@AbishekS has exported this pull request. If you are a Meta employee, you can view the originating Diff in D84192560.

AbishekS added a commit to AbishekS/torchx that referenced this pull request Oct 10, 2025
Summary:

Introduces enum for auto aliasing based on casing for the runopt nam

```
    class AutoAlias(IntEnum):
        snake_case = 0x1
        SNAKE_CASE = 0x2
        camelCase = 0x4
```
So user can extend name to be used as 
```
        opts.add(
            ["job_priority", runopt.AutoAlias.camelCase],
            type_=str,
            help="run as user",
        )
        opts.add(
            [
                "model_type_name",
                runopt.AutoAlias.camelCase | runopt.AutoAlias.SNAKE_CASE,
            ],
            type_=str,
            help="run as user",
        )
```
This should automatically produce additional aliases of `jobPriority` to `job_priority` and produce `modelTypeName` and `MODEL_TYPE_NAME` for `model_type_name`

Differential Revision: D84192560
Summary:

Lets allow aliases for a runopt. This will give downstream users to have multiple ways of accessing the same runopt. 

*  Introduce new class for `runopt.alias` which is used to expand on adding aliases to a runopt. 
*  Add a new dict to maintain alias to key values that can be used by `opt.get(name)`
* Modify add() to accept list as well, build out the aliases list and modify the previously created dict to fill in alias to primary_key values.
* Modify resolve() to check if a different alias is already used in cfg i.e if the "jobPriority" and "job_priority" are aliases for the same one, we don't allow for both to be present in the cfg.
* Modify get to look at the alias to primary_key dict as well.

Differential Revision: D84157870
Summary:


Similar to `runopt.alias` lets introduce and use `runopt.deprecated`. This will warn the user with a`UserWarning` when the user uses that specific name and suggests the primary one instead.

Reviewed By: kiukchung

Differential Revision: D84180061
Summary:

Introduces enum for auto aliasing based on casing for the runopt nam

```
    class AutoAlias(IntEnum):
        snake_case = 0x1
        SNAKE_CASE = 0x2
        camelCase = 0x4
```
So user can extend name to be used as 
```
        opts.add(
            ["job_priority", runopt.AutoAlias.camelCase],
            type_=str,
            help="run as user",
        )
        opts.add(
            [
                "model_type_name",
                runopt.AutoAlias.camelCase | runopt.AutoAlias.SNAKE_CASE,
            ],
            type_=str,
            help="run as user",
        )
```
This should automatically produce additional aliases of `jobPriority` to `job_priority` and produce `modelTypeName` and `MODEL_TYPE_NAME` for `model_type_name`

Differential Revision: D84192560
@codecov-commenter
Copy link

codecov-commenter commented Oct 10, 2025

Codecov Report

❌ Patch coverage is 94.94949% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.69%. Comparing base (b376e8c) to head (fb3ce28).

Files with missing lines Patch % Lines
torchx/specs/api.py 94.94% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1143      +/-   ##
==========================================
+ Coverage   91.64%   91.69%   +0.04%     
==========================================
  Files          83       83              
  Lines        6441     6536      +95     
==========================================
+ Hits         5903     5993      +90     
- Misses        538      543       +5     
Flag Coverage Δ
unittests 91.69% <94.94%> (+0.04%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants