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()