Skip to content

Conversation

@pandyamarut
Copy link
Contributor

No description provided.

@pandyamarut pandyamarut marked this pull request as ready for review October 14, 2025 19:45
deanq added 10 commits October 30, 2025 15:13
Adds optional 'local' parameter to @Remote decorator enabling local function/class execution without remote server provisioning. This facilitates testing and development by bypassing remote execution while maintaining the same decorator interface. Also adds detection for RunPod worker mode to return unwrapped functions when already running on the platform.
Add support for CpuInstanceType.ANY which automatically expands to all
available CPU instance types, providing flexibility similar to GPU
endpoint behavior.

Changes:
- Add CpuInstanceType.ANY enum value
- Add CpuInstanceType.all() classmethod to return all types except ANY
- Update CpuServerlessEndpoint default from CPU3G_2_8 to ANY
- Add field validator to expand [ANY] to all instance types
- Exclude ANY from CPU_INSTANCE_DISK_LIMITS dict

Test coverage:
- Test ANY enum value and all() method behavior
- Test validator expansion and explicit list preservation
- Update existing tests for new default behavior
- Verify ANY exclusion from disk limits calculation
Changes:
- Add editable install to make dev target
- Configure setuptools to find packages in src/ directory
- Update CLI branding to "Runpod Flash CLI"

The flash CLI now works correctly in development mode while
maintaining proper packaging for end users. Editable install
ensures src/ changes are immediately active without reinstall.
The default for CpuLiveServerless is CpuInstanceType.ANY which expands
to all available CPU instance types. Updated test expectations to match
actual behavior where ANY expands to all instances with minimum disk
size of 10GB.
Fixed two categories of test failures:

1. Async/await coroutine issues (16 failures)
   - Modified baked mode checks in execute_class.py and live_serverless.py
   - Added type check to ensure env is a dict before calling .get()
   - Prevents AttributeError when AsyncMock returns coroutines for all attributes

2. Image locking issues (5 failures)
   - Simplified LiveServerlessMixin.imageName property
   - Getter returns locked live image directly
   - Setter is now a no-op to prevent image changes
   - Ensures LiveServerless and CpuLiveServerless images remain locked

All 203 tests now passing with 41.96% coverage.
@deanq deanq self-requested a review October 31, 2025 07:42
Copy link
Member

@deanq deanq left a comment

Choose a reason for hiding this comment

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

This is a lot to maintain and so many areas that would complicate the process. As much as possible, we'll keep their code and implementation untouched. Our framework should always assist what Developers naturally build on top of it. This command should just build and package. We can tackle the handling of the application code in the runtime. Please review #104 for my proposal on a simple build packager.

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.

3 participants