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

Open
#1,751 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.