Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Convert public attributes to properties and document
Browse files Browse the repository at this point in the history
  • Loading branch information
vbraun committed Jul 12, 2015
1 parent 8f4fb8e commit f9a69a5
Show file tree
Hide file tree
Showing 2 changed files with 143 additions and 14 deletions.
122 changes: 112 additions & 10 deletions src/sage_bootstrap/sage_bootstrap/package.py
Expand Up @@ -41,10 +41,112 @@ def __init__(self, package_name):
-- ``package_name`` -- string. Name of the package. The Sage
convention is that all package names are lower case.
"""
self.name = package_name
self.__name = package_name
self._init_checksum()
self._init_version()

@property
def name(self):
"""
Return the package name
A package is defined by a subdirectory of
``SAGE_ROOT/build/pkgs/``. The name of the package is the name
of the subdirectory.
OUTPUT:
String.
"""
return self.__name

@property
def md5(self):
"""
Return the MD5 checksum
Do not use, this is ancient! Use :meth:`sha1` instead.
OUTPUT:
String.
"""
return self.__md5

@property
def sha1(self):
"""
Return the SHA1 checksum
OUTPUT:
String.
"""
return self.__sha1

@property
def cksum(self):
"""
Return the Ck sum checksum
Do not use, this is ancient! Use :meth:`sha1` instead.
OUTPUT:
String.
"""
return self.__cksum

@property
def tarball(self):
"""
Return the (primary) tarball filename
If there are multiple tarballs (currently unsupported), this
property returns the one that is unpacked automatically.
OUTPUT:
String. The full-qualified tarball filename.
"""
return self.__tarball

@property
def tarball_pattern(self):
"""
Return the (primary) tarball file pattern
OUTPUT:
String. The full-qualified tarball filename, but with
``VERSION`` instead of the actual tarball filename.
"""
return self.__tarball_pattern

@property
def version(self):
"""
Return the version
OUTPUT:
String. The package version. Excludes the Sage-specific
patchlevel.
"""
return self.__version

@property
def patchlevel(self):
"""
Return the patchlevel
OUTPUT:
String. The patchlevel of the package. Excludes the "p"
prefix.
"""
return self.__patchlevel

def __eq__(self, other):
return self.tarball == other.tarball

Expand Down Expand Up @@ -81,10 +183,10 @@ def _init_checksum(self):
continue
var, value = match.groups()
result[var] = value
self.md5 = result['md5']
self.sha1 = result['sha1']
self.cksum = result['cksum']
self.tarball_pattern = result['tarball']
self.__md5 = result['md5']
self.__sha1 = result['sha1']
self.__cksum = result['cksum']
self.__tarball_pattern = result['tarball']

VERSION_PATCHLEVEL = re.compile('(?P<version>.*)\.p(?P<patchlevel>[0-9]+)')

Expand All @@ -93,11 +195,11 @@ def _init_version(self):
package_version = f.read().strip()
match = self.VERSION_PATCHLEVEL.match(package_version)
if match is None:
self.version = package_version
self.patchlevel = -1
self.__version = package_version
self.__patchlevel = -1
else:
self.version = match.group('version')
self.patchlevel = match.group('patchlevel')
self.tarball = self.tarball_pattern.replace('VERSION', self.version)
self.__version = match.group('version')
self.__patchlevel = match.group('patchlevel')
self.__tarball = self.__tarball_pattern.replace('VERSION', self.version)


35 changes: 31 additions & 4 deletions src/sage_bootstrap/sage_bootstrap/tarball.py
Expand Up @@ -43,21 +43,48 @@ def __init__(self, tarball_name):
"""
A (third-party downloadable) tarball
Note that the tarball might also be a different kind of
archive format that is supported, it does not necessarily have
to be tar.
INPUT:
- ``name`` - string. The full filename (``foo-1.3.tar.bz2``)
of a tarball on the Sage mirror network.
"""
self.filename = tarball_name
self.package = None
self.__filename = tarball_name
self.__package = None
for pkg in Package.all():
if pkg.tarball == tarball_name:
self.package = pkg
self.__package = pkg
if self.package is None:
error = 'tarball {0} is not referenced by any Sage package'.format(tarball_name)
log.error(error)
raise ValueError(error)


@property
def filename(self):
"""
Return the tarball filename
OUTPUT:
String. The full filename (``foo-1.3.tar.bz2``) of the
tarball.
"""
return self.__filename

@property
def package(self):
"""
Return the package that the tarball belongs to
OUTPUT:
Instance of :class:`sage_bootstrap.package.Package`
"""
return self.__package

@property
def upstream_fqn(self):
"""
Expand Down

0 comments on commit f9a69a5

Please sign in to comment.