Mercurial > repos > shellac > sam_consensus_v3
diff env/lib/python3.9/site-packages/networkx/release.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.9/site-packages/networkx/release.py Mon Mar 22 18:12:50 2021 +0000 @@ -0,0 +1,228 @@ +"""Release data for NetworkX. + +When NetworkX is imported a number of steps are followed to determine +the version information. + + 1) If the release is not a development release (dev=False), then version + information is read from version.py, a file containing statically + defined version information. This file should exist on every + downloadable release of NetworkX since setup.py creates it during + packaging/installation. However, version.py might not exist if one + is running NetworkX from the mercurial repository. In the event that + version.py does not exist, then no vcs information will be available. + + 2) If the release is a development release, then version information + is read dynamically, when possible. If no dynamic information can be + read, then an attempt is made to read the information from version.py. + If version.py does not exist, then no vcs information will be available. + +Clarification: + version.py is created only by setup.py + +When setup.py creates version.py, it does so before packaging/installation. +So the created file is included in the source distribution. When a user +downloads a tar.gz file and extracts the files, the files will not be in a +live version control repository. So when the user runs setup.py to install +NetworkX, we must make sure write_versionfile() does not overwrite the +revision information contained in the version.py that was included in the +tar.gz file. This is why write_versionfile() includes an early escape. + +""" + +import os +import sys +import time +import datetime + +basedir = os.path.abspath(os.path.split(__file__)[0]) + + +def write_versionfile(): + """Creates a static file containing version information.""" + versionfile = os.path.join(basedir, "version.py") + + text = '''""" +Version information for NetworkX, created during installation. + +Do not add this file to the repository. + +""" + +import datetime + +version = %(version)r +date = %(date)r + +# Was NetworkX built from a development version? If so, remember that the major +# and minor versions reference the "target" (rather than "current") release. +dev = %(dev)r + +# Format: (name, major, min, revision) +version_info = %(version_info)r + +# Format: a 'datetime.datetime' instance +date_info = %(date_info)r + +# Format: (vcs, vcs_tuple) +vcs_info = %(vcs_info)r + +''' + + # Try to update all information + date, date_info, version, version_info, vcs_info = get_info(dynamic=True) + + def writefile(): + fh = open(versionfile, "w") + subs = { + "dev": dev, + "version": version, + "version_info": version_info, + "date": date, + "date_info": date_info, + "vcs_info": vcs_info, + } + fh.write(text % subs) + fh.close() + + if vcs_info[0] == "mercurial": + # Then, we want to update version.py. + writefile() + else: + if os.path.isfile(versionfile): + # This is *good*, and the most likely place users will be when + # running setup.py. We do not want to overwrite version.py. + # Grab the version so that setup can use it. + # sys.path.insert(0, basedir) + from version import version + + # del sys.path[0] + else: + # This is *bad*. It means the user might have a tarball that + # does not include version.py. Let this error raise so we can + # fix the tarball. + # raise Exception('version.py not found!') + + # We no longer require that prepared tarballs include a version.py + # So we use the possibly trunctated value from get_info() + # Then we write a new file. + writefile() + + return version + + +def get_revision(): + """Returns revision and vcs information, dynamically obtained.""" + vcs, revision, tag = None, None, None + + gitdir = os.path.join(basedir, "..", ".git") + + if os.path.isdir(gitdir): + vcs = "git" + # For now, we are not bothering with revision and tag. + + vcs_info = (vcs, (revision, tag)) + + return revision, vcs_info + + +def get_info(dynamic=True): + # Date information + date_info = datetime.datetime.utcfromtimestamp( + int(os.environ.get("SOURCE_DATE_EPOCH", time.time())) + ) + date = time.asctime(date_info.timetuple()) + + revision, version, version_info, vcs_info = None, None, None, None + + import_failed = False + dynamic_failed = False + + if dynamic: + revision, vcs_info = get_revision() + if revision is None: + dynamic_failed = True + + if dynamic_failed or not dynamic: + # This is where most final releases of NetworkX will be. + # All info should come from version.py. If it does not exist, then + # no vcs information will be provided. + # sys.path.insert(0, basedir) + try: + from version import date, date_info, version, version_info, vcs_info + except ImportError: + import_failed = True + vcs_info = (None, (None, None)) + else: + revision = vcs_info[1][0] + # del sys.path[0] + + if import_failed or (dynamic and not dynamic_failed): + # We are here if: + # we failed to determine static versioning info, or + # we successfully obtained dynamic revision info + version = "".join([str(major), ".", str(minor)]) + if dev: + version += ".dev_" + date_info.strftime("%Y%m%d%H%M%S") + version_info = (name, major, minor, revision) + + return date, date_info, version, version_info, vcs_info + + +# Version information +name = "networkx" +major = "2" +minor = "5" + + +# Declare current release as a development release. +# Change to False before tagging a release; then change back. +dev = False + + +description = "Python package for creating and manipulating graphs and networks" +authors = { + "Hagberg": ("Aric Hagberg", "hagberg@lanl.gov"), + "Schult": ("Dan Schult", "dschult@colgate.edu"), + "Swart": ("Pieter Swart", "swart@lanl.gov"), +} +maintainer = "NetworkX Developers" +maintainer_email = "networkx-discuss@googlegroups.com" +url = "http://networkx.github.io/" +project_urls = { + "Bug Tracker": "https://github.com/networkx/networkx/issues", + "Documentation": "https://networkx.github.io/documentation/stable/", + "Source Code": "https://github.com/networkx/networkx", +} +platforms = ["Linux", "Mac OSX", "Windows", "Unix"] +keywords = [ + "Networks", + "Graph Theory", + "Mathematics", + "network", + "graph", + "discrete mathematics", + "math", +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: BSD License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3 :: Only", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Scientific/Engineering :: Bio-Informatics", + "Topic :: Scientific/Engineering :: Information Analysis", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Scientific/Engineering :: Physics", +] + +date, date_info, version, version_info, vcs_info = get_info() + +if __name__ == "__main__": + # Write versionfile for nightly snapshots. + write_versionfile()