From e53471ac363b894734a90313ec9738236f99596a Mon Sep 17 00:00:00 2001 From: "ChangBo Guo(gcb)" Date: Mon, 29 Feb 2016 13:28:29 +0800 Subject: [PATCH] Use pkg_resources to get version Current osprofiler can't show version due to wrong way to generate module version. Use pkg_resources to get version. Note: we don't want to usr pbr in runtime. Closes-Bug: #1551079 Change-Id: I5b728c9b8295620b806335e7d95f9a4fbc33d1cc --- osprofiler/__init__.py | 12 ++---------- setup.py | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/osprofiler/__init__.py b/osprofiler/__init__.py index f64a0e6..5cfb65a 100644 --- a/osprofiler/__init__.py +++ b/osprofiler/__init__.py @@ -13,19 +13,11 @@ # License for the specific language governing permissions and limitations # under the License. -import os - -from six.moves import configparser +import pkg_resources from osprofiler import _utils as utils utils.import_modules_from_package("osprofiler._notifiers") -_conf = configparser.ConfigParser() -_conf.read(os.path.join( - os.path.dirname(os.path.dirname(__file__)), "setup.cfg")) -try: - __version__ = _conf.get("metadata", "version") -except (configparser.NoOptionError, configparser.NoSectionError): - __version__ = None +__version__ = pkg_resources.get_distribution("osprofiler").version diff --git a/setup.py b/setup.py index b96e399..ddd1771 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,27 @@ -#!/usr/bin/env python +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools +# In python < 2.7.4, a lazy loading of package `pbr` will break +# setuptools if some other modules registered functions in `atexit`. +# solution from: http://bugs.python.org/issue15881#msg170215 +try: + import multiprocessing # noqa +except ImportError: + pass + setuptools.setup( - setup_requires=['pbr'], + setup_requires=['pbr>=1.8'], pbr=True)