def github(): """tag it with the current version""" with LocalShell() as local: local.run('git tag {name}-{ver} -m "Adds a tag so we can put this on PyPI"'.format( name=Project.package, ver=get_project_version(Project.package))) local.run('git push --tags origin master')
def metadata(self, data_dict): """ Set the project's environment attributes :param data_dict: the project's attributes :type data_dict: dict """ def set_default_attr(attr, default_attr, first=False): """ If the attribute is not set, then set it to the value of the default attribute. If first is asserted, then the value of the default attribute should be a list and we want the first value in the list. """ if getattr(self, attr, None) is None: default_value = getattr(self, default_attr, None) if default_value and first: default_value = getattr(self, default_attr, None)[0] setattr(self, attr, default_value) # print("metadata(%s)" % repr(data_dict)) for key, value in data_dict.items(): self.__setattr__(key, value) if key.endswith('_dir'): self.__directory(value) self.__check_missing_required_attributes() setattr(self, 'name', re.sub(r'[ -]', '', getattr(self, 'name', ''))) set_default_attr('title', 'name') set_default_attr('class_name_prefix', 'name') # noinspection PyUnresolvedReferences from herringlib.version import get_project_version self.__setattr__('version', get_project_version(project_package=self.package)) debug("{name} version: {version}".format(name=getattr(self, 'name', ''), version=self.version)) if Project.package is None: Project.main = None else: if 'script' not in self.__dict__: self.__setattr__('script', Project.package) if 'main' not in self.__dict__: self.__setattr__('main', '{name}_main.py'.format(name=Project.package)) if Project.name is not None: if Project.logo_name is None: Project.logo_name = Project.name if 'egg_dir' not in self.__dict__: self.__setattr__('egg_dir', "{name}.egg-info".format(name=Project.name)) set_default_attr('venv_base', 'package') set_default_attr('test_python_versions', 'python_versions') set_default_attr('tox_python_versions', 'test_python_versions') set_default_attr('metrics_python_versions', 'python_versions') set_default_attr('min_python_version', 'python_versions') set_default_attr('sdist_python_version', 'python_versions', first=True) set_default_attr('deploy_python_version', 'python_versions', first=True) setattr(self, 'min_python_version_tuple', self.version_to_tuple(getattr(self, 'min_python_version', '26'))) setattr(self, 'pythons_str', " ".join(list(["python{v}".format(v=self.ver_to_version(v)) for v in getattr(self, 'python_versions')]))) setattr(self, 'tox_pythons', ",".join(['py{v}'.format(v=v) for v in getattr(self, 'tox_python_versions')])) if getattr(self, 'docs_venv', None) is None: setattr(self, 'docs_venv', '{name}{ver}'.format(name=getattr(self, 'venv_base'), ver=getattr(self, 'doc_python_version'))) if getattr(self, 'docs_html_path', None) is None: setattr(self, 'docs_html_path', os.path.join(getattr(self, 'herringfile_dir', None), getattr(self, 'docs_html_dir', None))) set_default_attr('docs_host', 'dist_host') set_default_attr('docs_user', 'dist_user') set_default_attr('docs_password', 'dist_password') set_default_attr('docker_project', 'package') # load design header from file if available # noinspection PyBroadException try: with open(self.design_header_file) as in_file: # noinspection PyAttributeOutsideInit self.design_header = in_file.read() except Exception: pass
def metadata(self, data_dict): """ Set the project's environment attributes :param data_dict: the project's attributes :type data_dict: dict """ # print("metadata(%s)" % repr(data_dict)) for key, value in data_dict.items(): self.__setattr__(key, value) if key.endswith('_dir'): self.__directory(value) self.__check_missing_required_attributes() setattr(self, 'name', re.sub(r'[ -]', '', getattr(self, 'name', ''))) if getattr(self, 'title', None) is None: setattr(self, 'title', getattr(self, 'name', None)) from herringlib.version import get_project_version self.__setattr__('version', get_project_version(project_package=self.package)) debug("{name} version: {version}".format(name=getattr(self, 'name', ''), version=self.version)) if Project.package is None: Project.main = None else: if 'script' not in self.__dict__: self.__setattr__('script', Project.package) if 'main' not in self.__dict__: self.__setattr__('main', '{name}_main.py'.format(name=Project.package)) if Project.name is not None: if Project.logo_name is None: Project.logo_name = Project.name if 'egg_dir' not in self.__dict__: self.__setattr__('egg_dir', "{name}.egg-info".format(name=Project.name)) if Project.venv_base is None: Project.venv_base = Project.package if getattr(self, 'test_python_versions', None) is None: setattr(self, 'test_python_versions', getattr(self, 'python_versions')) if getattr(self, 'metrics_python_versions', None) is None: setattr(self, 'metrics_python_versions', getattr(self, 'python_versions')) if getattr(self, 'sdist_python_version', None) is None: setattr(self, 'sdist_python_version', getattr(self, 'python_versions')[0]) if getattr(self, 'deploy_python_version', None) is None: setattr(self, 'deploy_python_version', getattr(self, 'python_versions')[0]) if getattr(self, 'min_python_version', None) is None: setattr(self, 'min_python_version', min(getattr(self, 'python_versions'))) setattr(self, 'min_python_version_tuple', self.version_to_tuple(getattr(self, 'min_python_version', '26'))) if getattr(self, 'docs_html_path', None) is None: setattr(self, 'docs_html_path', os.path.join(getattr(self, 'herringfile_dir', None), getattr(self, 'docs_html_dir', None))) if getattr(self, 'docs_host', None) is None: setattr(self, 'docs_host', getattr(self, 'dist_host', None)) if getattr(self, 'docs_user', None) is None: setattr(self, 'docs_user', getattr(self, 'dist_user', None)) if getattr(self, 'docs_password', None) is None: setattr(self, 'docs_password', getattr(self, 'dist_password', None)) if getattr(self, 'docker_project', None) is None: setattr(self, 'docker_project', getattr(self, 'package', None)) # load design header from file if available # noinspection PyBroadException try: with open(self.design_header_file) as in_file: # noinspection PyAttributeOutsideInit self.design_header = in_file.read() except: pass