class_docstr: Class describing basic methods that package should provide
  
  Parameters
  ----------
  `key`: str
      Name this package should be queried for
  `versions`: str or PckgVer class object
      List of versions this package is available for
  `name`: str, optional, default = None
      Name of this package used during installation. If empty it is the same as the key
class_docstr_tok: ["Class","describing","basic","methods","that","package","should","provide","Parameters","--","--","--","--","--","`","key","`",":","str","Name","this","package","should","be","queried","for","`","versions","`",":","str","or","PckgVer","class","object","List","of","versions","this","package","is","available","for","`","name","`",":","str",",","optional",",","default","=","None","Name","of","this","package","used","during","installation",".","If","empty","it","is","the","same","as","the","key"]
code: def __init__(self, key, versions, name=None):
      self.key = key
      if not name:
          name = key
      self.name = name
      self.versions = versions
  
imports: import argparse
  import sys
  from pip._vendor.packaging.version import parse
  import urllib.parse
  from urllib.request import urlopen, HTTPError, Request, URLError
label_desc: Use image node_id 1 to create a new BasePackage object  with example: obj = BasePackage(key, versions, name)