Feature #17973

Separate Python DPMs

Added by Beau Harrison almost 3 years ago. Updated 6 months ago.

Python Client Library
Target version:
Start date:
Due date:
% Done:


Estimated time:


I understand that there is a use case for Python 2.6 but I would like to suggest that there exist a second Python DPM for Python 3 support.


#1 Updated by Richard Neswold almost 3 years ago

  • Category set to Python Client Library

I agree, I'd like to see a Python 3.x interface, too. For this to work, however, we need a different PYTHONPATH for each version. Right now the .pyc files are being stored in the download area: /usr/local/xcons/exe. Maybe create two directories?:

/usr/local/xcons/exe/py2 and

We could put the appropriate versions in the right location. But then this brings up other questions:

  • I want both targeted Pythons to have roughly the same API, so the DPM module still needs to be called DPM. How can I have two Python modules in the repository targeted for different Pythons? I guess the project could have two subdirectories.
  • Is there a way to get a make file to build the .pyc files for each version of Python?
  • How does PYTHONPATH get set appropriately?

#2 Updated by Richard Neswold almost 3 years ago

I haven't done this (yet!) to the Python acnet repository but, for the Python DPM repository, I created two master branches: master-py2 and master-py3. The master branch has been cleared of source and has a README file describing the organization.

The two master branches can diverge as we tailor each for features available in their respective version of Python. If some code needs to be present in both, we'll use git cherry-pick to transfer the specific changes. These branches should never be merged using git merge as that would try to merge all the historical changes!.

#3 Updated by Richard Neswold almost 3 years ago

Okay. The acnet repo is also set up this way.

#4 Updated by Beau Harrison 6 months ago

We should see if our Python 3 library is backward compatible and if not investigate what it would take to stop maintaining two separate code bases.

Also available in: Atom PDF