logo
down
shadow

find if a semantic version is superset of of another version python


find if a semantic version is superset of of another version python

Content Index :

find if a semantic version is superset of of another version python
Tag : python , By : user103892
Date : January 11 2021, 03:34 PM

it helps some times Steps:
convert your ranges into a more strict notation to eliminate ',1.2.3.4' and '1.0,2.3.4' (we need exact lower bounds for the last step) convert your strings into actual Version objects for ease of comparisons (you could also do some conversion to numeral tuples but they break on versions containing non-numeric characters)
from packaging.version import Version
from functools import cmp_to_key
from collections import defaultdict

def adj_lengths(s, c=3):
    """Add missing .0 to a version up to a predefined count '.'-count.
    Example:  '9.0.2' with c == 3 -> '9.0.2.0'"""

    cnt = s.count(".")
    if c>cnt:
        s = s + ".0"*(c-cnt)
    return s


def split_mult(s):
    """Make versions more precise by replacing implicit range starts.
    Uses adj_lengths to add missing .0 to equalize version lengths.
    Handles splitting multiple given ranges as well. 
    Returns iterable.
    Example: '[,1.3.11),[,1.7.0), [,1.8.0)' 
             -> (['0.0.0.0', '1.3.11.0'],['0.0.0.0', '1.7.0.0'], ['0.0.0.0', '1.8.0.0'])"""

    s = s.replace("[,",f"[0,")
    s1 = [ adj_lengths(b) for b in (t.strip("[()] ") for t in s.split(","))]

    yield from [ s1[i:i+2] for i in range(0,len(s1),2)]


def make_version(l):
    """Transform text-list into Version-tuple."""

    return ( Version(l[0]), Version(l[1]) )
vers = ["[,1.8.8.1)",   
        "[,1.8.8.2)",   
        "[,1.8.8.3)",  
        "[1.0.0, 1.4.4)", 
        "[,1.3.11),[,1.7.0), [,1.8.0)"]

# preprocessing to make them nicer
vers2 = []
for tmp in (split_mult(a) for a in vers) :
    vers2.extend( (make_version(k) for k in tmp) )
print(vers2)

# bring into order
vers2.sort()

# use the lower bound as key - append alle upper bounds to a defaultdict(list)  
d = defaultdict(list)
for fr,to in vers2:
    d[fr].append(to)

# simplify lower bound:[list of upper bounds] to (lower bound, max(upper bound list values))
vers3 = [ (k,max(v)) for k,v in d.items()]

# eliminate range that lie inside the 1st elements range
for item in vers3[1:][:]:
    if item[0] >= vers3[0][0] and item[1] <= vers3[0][1]:
        vers3.remove(item)

print(vers3)
[(<Version('0.0.0.0')>, <Version('1.8.8.3')>)]
[(<Version('0.0.0.0')>, <Version('1.8.8.3')>), 
 (<Version('1.0.0.0')>, <Version('2.8.8.3')>), 
 (<Version('1.2.0.0')>, <Version('1.8.8.3')>), ] # last elem inside before-last elem

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

where do I find the xml.dom python package for the python-2.6.0-8.9.28 and I have a suse/x86_64 version of Linux version


Tag : python , By : Ir0nh1de
Date : March 29 2020, 07:55 AM
I wish this help you everytime you are not sure about a python package, you can try this:
http://pypi.python.org/pypi

Where can i find worklight studio version v6.1? The only version i can find now is v6.2 on eclipse marketplace


Tag : development , By : CrookedNumber
Date : March 29 2020, 07:55 AM
Does that help See here for a list of download URLs for the latest available build of previous releases: Can I install an older version of Worklight studio?
If you are an IBM customer or business partner, you should contact IBM to get a specific build of a version that you may require.

Why is Angular version 4 compatible with version 2 if they use semantic versioning?


Tag : angular , By : Waheedoo
Date : March 29 2020, 07:55 AM
hop of those help? Shouldn't major releases be incompatible with their predecessors, according to semantic versioning? , The answer in in the comments given by @JBNizet:

update-package : Failed to parse the input of Version parameter: highest to a valid Semantic version


Tag : visual-studio , By : user116330
Date : March 29 2020, 07:55 AM
it fixes the issue
update-package : Failed to parse the input of Version parameter: highest to a valid Semantic version
update-package mypackagename
update-package mypackagename -DependencyVersion highest

Version mismatch. H2O is version 3.22.0.1, but the h2o-python package is version 0.0.local


Tag : development , By : user123585
Date : March 29 2020, 07:55 AM
will be helpful for those in need I had the same problem while trying to initiate h2o inside a virtual environment using jupyter notebook.
As it has been said on the previous thread OSError: Version mismatch while installing h2o? you probably have to kill the h2o cluster. In my case it worked with:
Related Posts Related QUESTIONS :
  • How to send alert or message from view.py to template?
  • How to add qml ScatterSeries to existing qml defined ChartView?
  • Django + tox: Apps aren't loaded yet
  • My css and images arent showing in django
  • Probability mass function sum 2 dice roll?
  • Cannot call ubuntu 'ulimit' from python subprocess without using shell option
  • Dataframe Timestamp Filter for new/repeating value
  • Problem with clicking select2 dropdownlist in selenium
  • pandas dataframe masks to write values into new column
  • How to click on item in navigation bar on top of page using selenium python?
  • Add multiple EntityRuler with spaCy (ValueError: 'entity_ruler' already exists in pipeline)
  • error when replacing missing ')' using negative look ahead regex in python
  • Is there a way to remove specific strings from indexes using a for loop?
  • select multiple tags by position in beautifulSoup
  • pytest: getting AttributeError: 'CaptureFixture' object has no attribute 'readouterror' capturing stdout
  • Shipping PyGObject/GTK+ app on Windows with MingW
  • Python script to deduplicate lines in multiple files
  • How to prevent window and widgets in a pyqt5 application from changing size when the visibility of one widget is altered
  • How to draw stacked bar plot from df.groupby('feature')['label'].value_counts()
  • Python subprocess doesn't work without sleep
  • How can I adjust 'the time' in python with module Re
  • Join original np array with resulting np array in a form of dictionary? multidimensional array? etc?
  • Forcing labels on histograms in each individual graph in a figure
  • For an infinite dataset, is the data used in each epoch the same?
  • Is there a more efficent way to extend a string?
  • How to calculate each single element of a numpy array based on conditions
  • How do I change the width of Jupyter notebook's cell's left part?
  • Measure distance between lat/lon coordinates and utm coordinates
  • Installing megam for NLTK on Windows
  • filter dataframe on each value of a samn column have a specific value of another column in Panda\Python
  • Threading with pubsub throwing AssertionError: 'callableObj is not callable' in wxPython
  • Get grouped data from 2 dataframes with condition
  • How can I import all of sklearns regressors
  • How to take all elements except the first k
  • Whats wrong with my iteration list of lists from csv
  • Tensorflow Estimator API save image summary in eval mode
  • How to Pack with PyQt - how to make QFrame/Layout adapt to content
  • How do I get certain Time Range in Python
  • python doubly linked list - insertAfter node
  • Open .h5 file in Python
  • Joining a directory name with a binary file name
  • python, sort list with two arguments in compare function
  • Is it possible to print from Python using non-ANSI colors?
  • Pandas concat historical data using date minus some number of days
  • CV2: Import Error in Python OpenCV
  • Is it possible to do this loop in a one-liner?
  • invalid literal for int() with base 10: - django
  • Why does my code print a value that I have not assigned as yet?
  • the collatz func in automate boring stuff with python
  • How to find all possible combinations of parameters and funtions
  • about backpropagation deep neural network in tensorflow
  • Sort strings in pandas
  • How do access my flask app hosted in docker?
  • Replace the sentence include some text with Python regex
  • Counting the most common element in a 2D List in Python
  • logout a user from the system using a function in python
  • mp4 metadata not found but exists
  • Django: QuerySet with ExpressionWrapper
  • Pandas string search in list of dicts
  • Decryption from RSA encrypted string from sqlite is not the same
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com