From 476676e9ab9c2c3933b406d1e6d59b4d67e54bbb Mon Sep 17 00:00:00 2001 From: Karl Date: Thu, 29 Apr 2021 15:09:46 +0200 Subject: [PATCH] feat(main): possible to define now tags if you write a dataframe --- gewv_timeseries_client/timeseries_client.py | 14 +++++----- poetry.lock | 29 ++++++++++++++++----- poetry.toml | 2 -- pyproject.toml | 1 + 4 files changed, 31 insertions(+), 15 deletions(-) delete mode 100644 poetry.toml diff --git a/gewv_timeseries_client/timeseries_client.py b/gewv_timeseries_client/timeseries_client.py index 465baa2..c71bd71 100644 --- a/gewv_timeseries_client/timeseries_client.py +++ b/gewv_timeseries_client/timeseries_client.py @@ -1,4 +1,5 @@ from influxdb_client import InfluxDBClient +from influxdb_client.client.write.point import Point from influxdb_client.rest import ApiException from influxdb_client.client.flux_table import FluxTable from datetime import datetime @@ -83,34 +84,35 @@ def get_dataframe(self, **kwargs): return df - def write_points(self, points): - pass + def write_points(self, project: str, points: List[Point]): + self._write_api.write(bucket=project, record=points) def write_a_dataframe( self, project: str, measurement_name: str, dataframe: pd.DataFrame, - tags: Dict[str, str] = None, + tag_columns: List[str] = [], + additional_tags: Dict[str, str] = None, ): """ Write a pandas dataframe to the influx db. You can define some tags, that are appended to every entry. """ - if tags is None: + if additional_tags is None: self._write_api.write( bucket=project, record=dataframe, data_frame_measurement_name=measurement_name, + data_frame_tag_columns=tag_columns, ) return tags_dataframe = pd.DataFrame(index=dataframe.index) - tag_columns = [] # create the dataframe with the tags - for tag_name, tag in tags.items(): + for tag_name, tag in additional_tags.items(): tag_columns.append(tag_name) tags_dataframe[tag_name] = [tag] * len(dataframe) diff --git a/poetry.lock b/poetry.lock index 29cd44b..5e7d768 100644 --- a/poetry.lock +++ b/poetry.lock @@ -53,7 +53,7 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> [[package]] name = "black" -version = "21.4b1" +version = "21.4b2" description = "The uncompromising code formatter." category = "dev" optional = false @@ -603,6 +603,17 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" [package.dependencies] six = ">=1.5" +[[package]] +name = "python-dotenv" +version = "0.17.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +cli = ["click (>=5.0)"] + [[package]] name = "python-gitlab" version = "2.7.1" @@ -621,7 +632,7 @@ yaml = ["PyYaml (>=5.2)"] [[package]] name = "python-semantic-release" -version = "7.15.3" +version = "7.15.4" description = "Automatic Semantic Versioning for Python projects" category = "dev" optional = false @@ -948,7 +959,7 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pyt [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "fb8ac2e5651b4846c805f82f0e734aa56a3050ed9b679c7e567e5537efda630f" +content-hash = "d676ab858659c2a0f3d1ce970578fcf9143bad6cef8aa33728a4f255187516ef" [metadata.files] appdirs = [ @@ -972,8 +983,8 @@ attrs = [ {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, ] black = [ - {file = "black-21.4b1-py3-none-any.whl", hash = "sha256:c9601dc863779db2fb1bf18b345bbfa2bb868463123cde6a7eff44b59e4ef739"}, - {file = "black-21.4b1.tar.gz", hash = "sha256:20d326de75d13be6290925a95c94a9f368aca2f71cb7b753a938a5ae20f34a37"}, + {file = "black-21.4b2-py3-none-any.whl", hash = "sha256:bff7067d8bc25eb21dcfdbc8c72f2baafd9ec6de4663241a52fb904b304d391f"}, + {file = "black-21.4b2.tar.gz", hash = "sha256:fc9bcf3b482b05c1f35f6a882c079dc01b9c7795827532f4cc43c0ec88067bbc"}, ] bleach = [ {file = "bleach-3.3.0-py2.py3-none-any.whl", hash = "sha256:6123ddc1052673e52bab52cdc955bcb57a015264a1c57d37bea2f6b817af0125"}, @@ -1334,13 +1345,17 @@ python-dateutil = [ {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, ] +python-dotenv = [ + {file = "python-dotenv-0.17.0.tar.gz", hash = "sha256:471b782da0af10da1a80341e8438fca5fadeba2881c54360d5fd8d03d03a4f4a"}, + {file = "python_dotenv-0.17.0-py2.py3-none-any.whl", hash = "sha256:49782a97c9d641e8a09ae1d9af0856cc587c8d2474919342d5104d85be9890b2"}, +] python-gitlab = [ {file = "python-gitlab-2.7.1.tar.gz", hash = "sha256:e1f9234a3ee7fbcf9ab1a5cb8b935ae58fdab29af9832ae060bf74d88bac8a7c"}, {file = "python_gitlab-2.7.1-py3-none-any.whl", hash = "sha256:b1dbb66f53ad7cf33fbdce8e9e7e6a09b18c75a9c506b099af1f6f9191542cfb"}, ] python-semantic-release = [ - {file = "python-semantic-release-7.15.3.tar.gz", hash = "sha256:0ffcb267923731b3578d4377de67c59c5779c80e514ef9883c47c8877c059d74"}, - {file = "python_semantic_release-7.15.3-py3-none-any.whl", hash = "sha256:9b5c6e7ff9887b0cc8178004aa101aae2bfec8a464316cf287be8acbdf1e4954"}, + {file = "python-semantic-release-7.15.4.tar.gz", hash = "sha256:cb2a02a35c48d8ea81b83c3d913ee0bf5f4e26e97f4cbc8f25930e4a80792eae"}, + {file = "python_semantic_release-7.15.4-py3-none-any.whl", hash = "sha256:a62ff8a9c909737fb45adb1c90dfa4938eb0e329831b91a26b7b586b378e4f94"}, ] pytz = [ {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"}, diff --git a/poetry.toml b/poetry.toml deleted file mode 100644 index efa46ec..0000000 --- a/poetry.toml +++ /dev/null @@ -1,2 +0,0 @@ -[virtualenvs] -in-project = true \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index af8bb1a..a2d3cd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,7 @@ commitizen = "^2.1.0" python-semantic-release = "^7.2.2" flake8 = "^3.8.3" pytest-asyncio = "^0.14.0" +python-dotenv = "^0.17.0" [tool.semantic_release] version_variable = "gewv_timeseries_client/__init__.py:__version__"