From df50ccd22e9b3892920cd507756c986cf111f86b Mon Sep 17 00:00:00 2001 From: Forrest Weinberg Date: Wed, 4 Mar 2020 05:37:15 -0800 Subject: [PATCH 1/4] Refactored the package version information so that the source of truth for the package version is in one location, the package __init__. The setup script points to the __version__ in the package init so you don't have to update it in many places --- meraki/__init__.py | 2 ++ setup.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/meraki/__init__.py b/meraki/__init__.py index d9667d5b..d3ed035b 100644 --- a/meraki/__init__.py +++ b/meraki/__init__.py @@ -84,6 +84,8 @@ MAXIMUM_RETRIES, OUTPUT_LOG, LOG_PATH, LOG_FILE_PREFIX, PRINT_TO_CONSOLE, SIMULATE_API_CALLS ) +__version__ = '0.80.3' + class DashboardAPI(object): """ diff --git a/setup.py b/setup.py index b1d56601..d9b7a3b4 100644 --- a/setup.py +++ b/setup.py @@ -8,6 +8,24 @@ with open(os.path.join(HERE, 'README.md')) as fid: README = fid.read() + +def find_version(fname): + '''Attempts to find the version number in the file names fname. + Raises RuntimeError if not found. + ''' + version = '' + with open(fname, 'r') as fp: + reg = re.compile(r'__version__ = [\'"]([^\'"]*)[\'"]') + for line in fp: + m = reg.match(line) + if m: + version = m.group(1) + break + if not version: + raise RuntimeError('Cannot find version information') + return version + + setup( name='meraki', version='0.70.5', From 42c796f6e714da067aebd742e057fa0219cbdaf0 Mon Sep 17 00:00:00 2001 From: Forrest Weinberg Date: Wed, 4 Mar 2020 05:57:32 -0800 Subject: [PATCH 2/4] changed the version reference in the setup function --- setup.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d9b7a3b4..5c4c9d5c 100644 --- a/setup.py +++ b/setup.py @@ -26,9 +26,12 @@ def find_version(fname): return version +__version__ = find_version('cli.py') + + setup( name='meraki', - version='0.70.5', + version=__version__, packages=find_packages(), include_package_data=True, install_requires=['requests'], From 2e2e64c3d4261e09ad08715d99edee8cb7757009 Mon Sep 17 00:00:00 2001 From: Forrest Weinberg Date: Wed, 4 Mar 2020 06:03:33 -0800 Subject: [PATCH 3/4] Created a file path reference to the package's __init__.py so the package version can be dynamically read --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5c4c9d5c..74533a92 100644 --- a/setup.py +++ b/setup.py @@ -4,6 +4,7 @@ from setuptools import setup, find_packages HERE = os.path.abspath(os.path.dirname(__file__)) +PACKAGE_INIT = os.path.abspath(os.path.join('meraki', '__init__.py')) with open(os.path.join(HERE, 'README.md')) as fid: README = fid.read() @@ -26,7 +27,7 @@ def find_version(fname): return version -__version__ = find_version('cli.py') +__version__ = find_version(PACKAGE_INIT) setup( From 780a3778ce2a74becca68e0e970a34d78f396888 Mon Sep 17 00:00:00 2001 From: Forrest Weinberg Date: Wed, 4 Mar 2020 09:04:35 -0800 Subject: [PATCH 4/4] Importing regex into setup.py so we can dynamically parse for the __version__ --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 74533a92..85cd3e03 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ """Setup script for meraki""" import os.path +import re from setuptools import setup, find_packages HERE = os.path.abspath(os.path.dirname(__file__))