Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P
picomon
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • arn
  • picomon
  • Merge Requests
  • !6

Merged
Opened May 05, 2014 by Colomban Wendling@b4n
  • Report abuse
Report abuse

Split subprocess compatibility layers

Split subprocess_compat into several modules to make it easier to maintenance and extend.

Now, instead of having the threading fix in a class derived from the one enabling timeout support, have two classes both derived from subprocess.Popen, and merge them together at the package's root level:

               subprocess.Popen
              /                \
._timeout_popen.Popen    ._threaded_popen.Popen
                   \      /
                    .Popen

This completely splits up the timeout support and threading fixes, removing any dependency from one on the other, and allows to easily add or remove another compatibility class by simply adding or removing a parent class from the root Popen empty class.

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch "https://gitlab.netlib.re/b4n/picomon.git" "subprocess-compat-split"
git checkout -b "b4n/picomon-subprocess-compat-split" FETCH_HEAD

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout "origin/master"
git merge --no-ff "b4n/picomon-subprocess-compat-split"

Step 4. Push the result of the merge to GitLab

git push origin "master"

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 0
  • Commits 1
  • Changes
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: arn/picomon!6