Reputation: 22952
What can I put on our setup.py
project configuration file to tell the developers that the project is a private/commercial application/library.
Currently I set:
setup(
name='MyProject',
version='0.1.0',
license='(c) My Company',
...
)
Any best practice?
Note:
Nowadays, most of the projects are open source, and adhere to the licences model. However, when you work on the industry, software are private. My company works with off-shore companies which may not be aware of the fact that a software can be private. So, I want to bring this fact to their attention by specifying this in the setup.py
file. This is why I'm looking for best practices about that.
Conclusion/Solution
For private/proprietary applications, I will follow rth's recommendation:
LICENSE
file.The template will be something like that:
setup(
name='MyProject',
version='0.1.0',
license="Proprietary",
classifiers=[
'License :: Other/Proprietary License',
...
],
...
)
An alternative could be to set “Not open source”, like defined in the cookiecutter-pypackage template.
Upvotes: 19
Views: 11956
Reputation: 11201
Technically, there is no fundamental difference between licensing open-source and proprietary software.
In both cases you should include a LICENSE
file specifying what can and cannot be done with your software (see this related SO question). It is also advised to add a short copyright / license header to every code file in your project (in case they get copied outside of the original package folder).
It is possible to mention the license type in setup.py
, however that field is mainly used to display the license for Python packages uploaded to PyPi. Since your code is not open-source (and won't be uploaded to PyPi), this is not very relevant in your case.
Upvotes: 11
Reputation: 468
if you fear people will upload your package by mistake to pypi, maybe some of those tricks would help How to disable uploading a package to PyPi unless --public is passed to the upload command
Upvotes: 2