The PyMedPhys License

PyMedPhys is a copyrighted work. Usage and distribution of PyMedPhys must comply with the licence under which it is distributed.

PyMedPhys is licensed under the GNU Affero General Public License version 3 (AGPL-3.0+) with additional terms from the Apache 2.0.

In practice, part of what this implies is that:

  • you are free to download and use the PyMedPhys code, and
  • you are free to distribute PyMedPhys under the strict conditions that along with any distribution, you include the source code of:
    • PyMedPhys itself, and
    • any works that themselves derive from PyMedPhys.

For more information on the requirements of AGPL-3.0, see

Licensing Header

Copyright (C) 2018 PyMedPhys Contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version (the “AGPL-3.0+”).

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License and the additional terms for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see

ADDITIONAL TERMS are also included as allowed by Section 7 of the GNU Affero General Public License. These additional terms are Sections 1, 5, 6, 7, 8, and 9 from the Apache License, Version 2.0 (the “Apache-2.0”) where all references to the definition “License” are instead defined to mean the AGPL-3.0+.

You should have received a copy of the Apache-2.0 along with this program. If not, see

Benefits of using a copyleft license in Medical Physics

For more information on why Medical Physicists might choose to use the AGPL-3.0+ license, please read the the Benefits of AGPL-3.0+ for Medical Physics.

Justification for the inclusion of additional terms

A significant and justifiable fear within the Medical Physics community is that the authors of any shared code may be liable for negligence, damages or harm caused by the shared code.

Within Australian courts, if there is any ambiguity in liability exclusion clauses, such clauses will be interpreted narrowly. I.e., if liability is not carefully, explicitly excluded in the licence, liability may not be interpreted as excluded within an Australian court (see page 80).

The AGPL-3.0+ does not explicitly mention negligence anywhere within its license text. However, the Apache-2.0 licence does. Moreover, the AGPL-3.0+ in Section 7 does define allowable additional terms. The negligence clauses within the Apache-2.0 fall under these allowable additional terms and have been included in the PyMedPhys licence. Other desirable features of the Apache-2.0 license - such as contribution, trademark, and warranty requirements - have also been included.

A note about the code sharing license requirement

If you only ever use this code internally within your company to create your own programs, the only people who need to have access to the source code are those users to whom you distribute the program. You are under no obligation to share your code outside of your company if your only users are within your company.

That said, there are very good reasons for you to share your code with members of the Medical Physics community and beyond! For more information, please read the Benefits of AGPL-3.0+ for Medical Physics.