From b47eadaf8fecfbab4f1c1b04a3185396e6565937 Mon Sep 17 00:00:00 2001 From: Patrick Toft Steffensen <17211264+PTST@users.noreply.github.com> Date: Wed, 21 Feb 2024 09:16:16 +0100 Subject: [PATCH] first commit --- .gitignore | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.MD | 0 build.py | 62 +++++++++++++++++++++++ setup.py | 23 +++++++++ 4 files changed, 229 insertions(+) create mode 100644 .gitignore create mode 100644 README.MD create mode 100644 build.py create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23f5fb8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,144 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +creds.json + +.vscode/ + +Pipfile.lock \ No newline at end of file diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..e69de29 diff --git a/build.py b/build.py new file mode 100644 index 0000000..db45531 --- /dev/null +++ b/build.py @@ -0,0 +1,62 @@ +import os +import re +import argparse +import sys +from subprocess import PIPE, run +from distutils.version import StrictVersion +import shutil + +version_regex = re.compile(r"(?<=version=\")([\d\.]+)(?=\")") + +python_exe = sys.executable + +parser = argparse.ArgumentParser() +parser.add_argument("--test", "-t", action="store_true") +parser.add_argument("--debug", "-d", action="store_true") +parser.add_argument("--version", "-v", action="store") +args = parser.parse_args() + +if args.test: + repository_url = "https://test.pypi.org/legacy/" +else: + repository_url = "https://upload.pypi.org/legacy/" + +if args.debug: + out = None +else: + out = PIPE + +with open("setup.py", "r+") as f: + setup_py = f.read() + matches = version_regex.search(setup_py) + version = StrictVersion(matches.group(1)) + version = StrictVersion(f"{version.version[0]}.{version.version[1]}.{version.version[2]+1}") + if args.version: + version = StrictVersion(args.version) + version = str(version) + if len(version.split(".")) < 3: + version += ".0" + setup_py = version_regex.sub(version, setup_py) + f.seek(0) + f.write(setup_py) + f.truncate() +if os.path.exists("dist"): + shutil.rmtree("dist") + +result = run( + f"{python_exe} setup.py sdist bdist_wheel", + stdout=out, + universal_newlines=True, + shell=True, +) +if result.returncode != 0: + raise Exception("Could not execute build") + + +result = run( + f"{python_exe} -m twine upload --repository-url {repository_url} dist/*", + universal_newlines=True, + shell=True, +) +if result.returncode != 0: + raise Exception("Could not upload build") \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..ca1dfbd --- /dev/null +++ b/setup.py @@ -0,0 +1,23 @@ +import setuptools + +with open("README.md", "r") as fh: + long_description = fh.read() + +setuptools.setup( + name="LibreView", + version="0.0.1", + author="PTST", + author_email="patrick@steffensen.io", + description="API interface for LibreView / LibreLinkUp glucose readings", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/PTST/LibreView_Py", + packages=setuptools.find_packages(), + install_requires=["requests >= 2.23.0"], + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + python_requires=">=3.11", +) \ No newline at end of file