CPython
Description​
CPython is the default and most widely used implementation of the Python programming language, serving both as an interpreter and a compiler. CPython compiles Python code into bytecode before interpreting it, providing a balance between performance and flexibility. As the reference implementation of Python, it includes a large standard library and is designed to be highly extensible.
General details​
- Developer(s): Developed by Guido van Rossum, the Python Software Foundation, and numerous individual contributors worldwide.
- Language(s): C, Python
- Open source: Yes
- Repository: https://github.com/python/cpython
- License: Python Software Foundation License
- Operating system(s): OS Independent
- Actively maintained: Yes (less than a week ago)
Intended use on the device​
The SOUP is used in the medical device for the following specific purposes only:
- Interpret and execute code written in Python.
- Leverage standard library capabilities to accomplish simple tasks or be used within utility functions or modules.
Requirements​
For the integration and safe usage of this SOUP within a software system, it's important to outline both functional and performance requirements. These requirements help mitigate risks and ensure compatibility and performance standards are met.
Functional​
- Compatibility: Compatible with our existing software stack, including the operating system, other programming languages in use, and third-party libraries.
- Security: Include mechanisms or support for securing the execution environment from untrusted code.
- Library Support: Extensive standard library support to minimise dependence on other third-party libraries.
- Error Handling: Adequate error reporting and handling capabilities, ensuring that exceptions are properly caught and logged.
Performance​
- Speed: Meet our application's performance criteria for execution speed in its intended use cases.
- Resource utilisation: Efficient memory and CPU usage, with minimal overhead, especially in long-running applications or those with significant data processing requirements.
- Concurrency: Support for concurrency models, even if native threading is limited by the Global Interpreter Lock (GIL) in multi-threaded scenarios.
- Scalability: Ability to scale with application demand, whether through multi-processing, integration with external services, or other architectural strategies.
System requirements​
Establishing minimum software and hardware requirements is important to mitigate risks, such as security vulnerabilities, performance issues, or compatibility problems, and to ensure that the SOUP functions effectively within the intended environment.
Software​
After evaluation, we find that there are no specific software requirements for this SOUP. It works properly on standard computing devices, which includes our environment.
Hardware​
After evaluation, we find that there are no specific hardware requirements for this SOUP. It works properly on standard computing devices, which includes our environment.
Documentation​
The official SOUP documentation can be found at: https://docs.python.org/3/
Additionally, a criterion for validating the SOUP is that all the items of the following checklist are satisfied:
- The vendor maintains clear and comprehensive documentation of the SOUP describing its functional capabilities, user guidelines, and tutorials, which facilitates learning and rapid adoption.
- The documentation for the SOUP is regularly updated and clearly outlines every feature utilised by the medical device, doing so for all integrated versions of the SOUP.
Related software items​
We catalog the interconnections between the microservices within our software architecture and the specific versions of the SOUP they utilise. This mapping ensures clarity and traceability, facilitating both the understanding of the system's dependencies and the management of SOUP components.
Although the title of the section mentions software items, the relationship with SOUP versions has been established with microservices (also considered software items) because each one is inside a different Docker container and, therefore, has its own isolated runtime environment.
SOUP version | Software item(s) |
---|---|
3.8.19 | APASI-SEGMENTER APASI-CLASSIFIER ASALT ASCORAD-SEGMENTER ASCORAD-CLASSIFIER ICD MULTICLASS CLASSIFIER ICD BINARY CLASSIFIER BINARY REFERRER QUALITY VALIDATOR DOMAIN VALIDATOR |
3.11.0 | WEB API GATEWAY REPORT BUILDER AGPPGA ALADIN APASI-API APULSIASCORAD-API AUAS AIHS4 NSIL |
Related risks​
The following are risks applicable to this SOUP from the table found in document R-TF-013-002 Risk management record_2023_001
:
- 58. SOUP presents an anomaly that makes it incompatible with other SOUPs or with software elements of the device.
- 59. SOUP is not being maintained nor regularly patched.
- 60. SOUP presents cybersecurity vulnerabilities.
Lists of published anomalies​
The incidents, anomalies, known issues or changes between versions for this SOUP can be found at:
History of evaluation of SOUP anomalies​
23 Feb 2024​
- Reviewer of the anomalies: Alejandro Carmena Magro
- Version(s) of the SOUP reviewed: 3.8.19, 3.11.0.
No anomalies have been found.
Record signature meaning​
- Author: JD-004
- Reviewer: JD-003
- Approver: JD-005