cdisc-org / cdisc-org/cdisc-rules-engine
Enhancement: Improve CORE path and DLL resolution to align with Python standards (Citrix/mapped drive compatibility) – ref #1747
- Dominant language
- Python
- Stars
- 113
- Forks
- 43
- Avg merge
- 14h 51m
- Merged PRs (30d)
- 14
Description
### Feature Description
Supporting Information
Environment: Citrix virtual desktop with mapped network drives
Current behavior: CORE executable fails to resolve file paths and/or dependent DLLs when executed from mapped drives
Related issue: Running CORE executable in Citrix environment (mapped drive path resolution failure) #1747
In addition to the mapped drive resolution issue, there appears to be a broader limitation in how the application handles dynamic path and dependency resolution across environments.
Enhancement Proposal
A potential long-term improvement would be to align CORE’s path and dependency handling with established Python best practices, particularly:
Explicit dependency handling similar to Python “requirements” patterns (clear, environment-independent dependency definition)
Dynamic DLL resolution using approaches analogous to os.add_dll_directory(), rather than relying on implicit or environment-specific paths
Consistent use of absolute paths to avoid ambiguity introduced by mapped drives or virtualized environments
Rationale
The current issue is not specific to Citrix and may impact any environment where:
Drive mappings differ from expected local paths
Execution context changes (e.g., virtualization, containers, remote sessions)
Adopting more standardized Python-like practices would:
Improve portability across environments
Reduce dependency on local/mapped path assumptions
Increase robustness and reproducibility of execution
Expected Outcome
CORE executable can reliably resolve dependencies regardless of environment (local, mapped drive, Citrix, etc.)
Reduced environment-specific configuration and troubleshooting
Alignment with widely accepted Python dependency and path management practices
References:
[https://runebook.dev/en/docs/python/library/os/os.add_dll_directory](https://urldefense.com/v3/__https:/runebook.dev/en/docs/python/library/os/os.add_dll_directory__;!!CDXhjtSm!xYAzrZNp__NB3T7SvYF9zgy1Q6DJZp1jLXxapPAkp1qZdn73x6AelJbIsy8-MYjaQZ9L8vUQKLxbDUD3R16R$)
Troubleshooting Python DLL Loading: Common os.add_dll_directory() Issues and Fixes
[https://stackoverflow.com/questions/67805339/is-the-function-os-add-dll-directory-adding-directories-permanently](https://urldefense.com/v3/__https:/stackoverflow.com/questions/67805339/is-the-function-os-add-dll-directory-adding-directories-permanently__;!!CDXhjtSm!xYAzrZNp__NB3T7SvYF9zgy1Q6DJZp1jLXxapPAkp1qZdn73x6AelJbIsy8-MYjaQZ9L8vUQKLxbDfFF6eAg$)
Is the function os. add_dll_directory() adding directories permanently?
[https://coderivers.org/blog/python-absolute-path/](https://urldefense.com/v3/__https:/coderivers.org/blog/python-absolute-path/__;!!CDXhjtSm!xYAzrZNp__NB3T7SvYF9zgy1Q6DJZp1jLXxapPAkp1qZdn73x6AelJbIsy8-MYjaQZ9L8vUQKLxbDc_y9cxc$)
Understanding and Working with Python Absolute Paths
Contributor guide
Research direction
Start by reading related issue #1747 and tracing how the CORE executable resolves paths and dependent DLLs in mapped-drive or Citrix environments. No files or tests are named; done means reliable dependency resolution across local, mapped, Citrix, and other changed execution environments, with reduced environment-specific configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100