Skip to content
Snippets Groups Projects
Verified Commit 31a75996 authored by Dominik Rimpf's avatar Dominik Rimpf :chipmunk:
Browse files

fixed decorator behaviour

parent ec8a339b
No related branches found
No related tags found
1 merge request!1Click support and argument deprecation
from netdb_client.api41 import APIEndpoint, APISession, dns
from netdb_client import util
from netdb_client.util.argparse_helper import ArgumentParser
parser = util.ArgumentParser()
parser = ArgumentParser()
args = parser.parse_args()
endpoint = APIEndpoint(**vars(args))
endpoint = APIEndpoint(base_url=args.netdb_base_url, token=args.netdb_token)
api = APISession(endpoint)
fqdn = dns.Fqdn.list(api, value_old='net.scc.kit.edu')
......
......@@ -2,7 +2,7 @@ import click
from netdb_client import api41
from netdb_client.api41 import APISession, dns
from netdb_client.util.click import netdb_api_options
from netdb_client.util.click_helper import netdb_api_options
@click.command(context_settings={'help_option_names': ['-h', '--help'], 'max_content_width': 160})
......
......@@ -2,7 +2,7 @@ import typer
from pathlib import Path
from netdb_client.api41 import APIEndpoint, APISession, dns
from netdb_client.util.click import netdb_config_callback, netdb_endpoint_callback
from netdb_client.util.click_helper import netdb_config_callback, netdb_endpoint_callback
app = typer.Typer()
......
"""netdb_client helper functions for configuration and response-parsing"""
from .argparse import ArgumentParser # for backwards compatibility
from .argparse_helper import ArgumentParser # for backwards compatibility
__all__ = ['ArgumentParser', 'list_to_generator_map_one2one', 'list_to_generator_map_one2many']
......
......@@ -3,6 +3,7 @@
import types
from pathlib import Path
from typing import Optional
from functools import update_wrapper
import click
......@@ -115,6 +116,6 @@ def netdb_api_options(client_lib_module: types.ModuleType, target: str = 'netdb_
kwargs[target] = api_endpoint
return func(*args, **kwargs)
return _decorator
return update_wrapper(_decorator, func)
return decorator
......@@ -4,13 +4,13 @@ import subprocess
import os
import requests
import semver
vers = requests.get(f"{os.environ.get('NETDB_SCHEME', 'https')}://{os.environ.get('NETDB_ENDPOINT')}").json()[0]
largest_ver = None
for v in vers:
sem_v = semver.Version.parse(v['numeric'])
if largest_ver is None or largest_ver < sem_v:
largest_ver = sem_v
largest_ver = sem_v
latest_previous_util_version = os.environ.get('LATEST_UTIL_VERSION', None)
latest_previous_api_version = os.environ.get('LATEST_API_VERSION', None)
......@@ -18,10 +18,12 @@ post_version = os.environ.get('POST_NUM', None)
if post_version is not None and not post_version.isdigit():
post_version = None
def get_gen_version():
ver = subprocess.run(["pip freeze | grep net_api_generator"], shell=True, text=True, check=True, capture_output=True).stdout
ver = subprocess.run(['pip freeze | grep net_api_generator'], shell=True, text=True, check=True, capture_output=True).stdout
return ver.split('@')[-1][:12]
class APIGenBuild(build_py):
def run(self):
build_versions = [f'{v["major"]}.{v["minor"]}' for v in vers]
......@@ -37,6 +39,7 @@ class APIGenBuild(build_py):
subprocess.run(['net-api-generator', 'python', f'--output-dir={target_dir}'], check=True, env=environ)
build_py.run(self)
util_version = f'{os.environ.get("CI_COMMIT_SHORT_SHA", "HEAD")}.{get_gen_version()}'
if util_version != latest_previous_util_version and str(largest_ver) == latest_previous_api_version:
......@@ -54,6 +57,5 @@ setup(
install_requires=['requests'],
python_requires='>=3.7',
packages=['netdb_client'],
cmdclass={'build_py': APIGenBuild}
cmdclass={'build_py': APIGenBuild},
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment