tagreader 6.3.0__tar.gz → 6.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tagreader
3
- Version: 6.3.0
3
+ Version: 6.3.1
4
4
  Summary: Tagreader is a Python package for reading trend data from the OSIsoft PI and Aspen Infoplus.21 IMS systems.
5
- License-Expression: MIT
6
- License-File: LICENSE
7
5
  Keywords: Aspen InfoPlus.21,OSIsoft PI
8
- Author: Einar S. Idsø
9
- Author-email: eiids@equinor.com
10
- Requires-Python: >=3.9.2,<4.0.0
6
+ Author: Einar S. Idsø, Morten Dæhli Aslesen
7
+ Author-email: Einar S. Idsø <eiids@equinor.com>, Morten Dæhli Aslesen <masl@equinor.com>
8
+ License-Expression: MIT
11
9
  Classifier: Development Status :: 5 - Production/Stable
12
10
  Classifier: Intended Audience :: Developers
13
11
  Classifier: Intended Audience :: Science/Research
@@ -23,70 +21,68 @@ Classifier: Programming Language :: Python :: 3.12
23
21
  Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
24
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
23
  Classifier: Topic :: Utilities
26
- Requires-Dist: certifi (>=2024.12.14,<2026.0.0)
27
- Requires-Dist: diskcache (>=5.6.1)
28
- Requires-Dist: msal-bearer (>=1.5.2)
29
- Requires-Dist: pandas (>=1)
30
- Requires-Dist: platformdirs (>=4.3.7)
31
- Requires-Dist: pycryptodome (>=3.20.0)
32
- Requires-Dist: requests (>=2.32.5)
33
- Requires-Dist: requests-kerberos (>=0)
34
- Requires-Dist: requests-ntlm (>=1.1,<=2.0)
35
- Requires-Dist: urllib3 (>=2.5.0)
36
- Project-URL: Homepage, https://github.com/equinor/tagreader-python
37
- Project-URL: Repository, https://github.com/equinor/tagreader-python
24
+ Requires-Dist: pandas>=1.4.0,<4
25
+ Requires-Dist: certifi>=2026.10.23,<2027.0.0
26
+ Requires-Dist: requests>=2.32.5
27
+ Requires-Dist: requests-kerberos>=0
28
+ Requires-Dist: msal-bearer>=1.6.0
29
+ Requires-Dist: diskcache>=5.6.1
30
+ Requires-Dist: pycryptodome>=4.1.0
31
+ Requires-Dist: requests-ntlm>=1.1,<=2.0
32
+ Requires-Dist: platformdirs>=4.4.0
33
+ Requires-Dist: urllib3>=2.5.0
34
+ Maintainer: Åsmund Våge Fannemel
35
+ Maintainer-email: Åsmund Våge Fannemel <asmf@equinor.com>
36
+ Requires-Python: >=3.9.6, <4.0.0
37
+ Project-URL: homepage, https://github.com/equinor/tagreader-python
38
+ Project-URL: repository, https://github.com/equinor/tagreader-python
38
39
  Description-Content-Type: text/markdown
39
40
 
40
- ⚠️ **Important:** **We are phasing out TagReader, and the code will no longer be maintained.**
41
-
42
- For employees in Equinor we recommend using Omnia Timeseries
43
-
44
- # tagreader-python <!-- omit in toc -->
45
-
46
- ![GitHub Build Status](https://github.com/equinor/tagreader-python/workflows/Test/badge.svg)
47
- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tagreader)
48
- ![PyPI](https://img.shields.io/pypi/v/tagreader)
49
- [![Downloads](https://pepy.tech/badge/tagreader)](https://pepy.tech/project/tagreader)
50
-
51
- Tagreader is a Python package for reading timeseries data from the OSIsoft PI and Aspen Infoplus.21
52
- Information Management Systems (IMS). It is intended to be easy to use, and present as similar interfaces
53
- as possible to the backend plant historians.
54
-
55
- ## Installation
56
- You can install tagreader directly into your project from pypi by using pip
57
- or another package manager. Supports Python version 3.9.2 and above.
58
-
59
- ```shell
60
- pip install tagreader
61
- ```
62
-
63
- ## Usage
64
- Tagreader is easy to use for both Equinor internal IMS services, and non-internal usage. For non-internal usage
65
- you simply need to provide the corresponding IMS service URLs and IMSType.
66
- See [data source](https://equinor.github.io/tagreader-python/docs/about/usage/data-source) for details.
67
-
68
- ### Usage example
69
- ```python
70
- import tagreader
71
- c = tagreader.IMSClient("mysource", "aspenone")
72
- print(c.search("tag*"))
73
- df = c.read_tags(["tag1", "tag2"], "18.06.2020 08:00:00", "18.06.2020 09:00:00", 60)
74
- ```
75
-
76
- Note, you can add a timeout argument to the search method in order to avoid long-running search queries.
77
-
78
- ### Jupyter Notebook Quickstart
79
- Jupyter Notebook examples can be found in /examples. In order to run these examples, you need to install the
80
- optional dependencies.
81
-
82
- ```shell
83
- pip install tagreader[notebooks]
84
- ```
85
-
86
- The quickstart Jupyter Notebook can be found [here](https://github.com/equinor/tagreader-python/blob/main/examples/quickstart.ipynb)
87
-
88
- For more details, see the [Tagreader Docs](https://equinor.github.io/tagreader-python/).
89
-
90
- ## Documentation
91
- The full documentation can be found in [Tagreader Docs](https://equinor.github.io/tagreader-python/)
92
-
41
+ # tagreader-python <!-- omit in toc -->
42
+
43
+ [![GitHub Build Status](https://github.com/equinor/tagreader-python/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/equinor/tagreader-python/actions/workflows/build.yml)
44
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tagreader)
45
+ ![PyPI](https://img.shields.io/pypi/v/tagreader)
46
+ [![Downloads](https://pepy.tech/badge/tagreader)](https://pepy.tech/project/tagreader)
47
+
48
+ Tagreader is a Python package for reading timeseries data from the OSIsoft PI and Aspen Infoplus.21
49
+ Information Management Systems (IMS). It is intended to be easy to use, and present as similar interfaces
50
+ as possible to the backend plant historians.
51
+
52
+ ## Installation
53
+ You can install tagreader directly into your project from pypi by using pip
54
+ or another package manager. Supports Python version 3.9.2 and above.
55
+
56
+ ```shell
57
+ pip install tagreader
58
+ ```
59
+
60
+ ## Usage
61
+ Tagreader is easy to use for both Equinor internal IMS services, and non-internal usage. For non-internal usage
62
+ you simply need to provide the corresponding IMS service URLs and IMSType.
63
+ See [data source](https://equinor.github.io/tagreader-python/docs/about/usage/data-source) for details.
64
+
65
+ ### Usage example
66
+ ```python
67
+ import tagreader
68
+ c = tagreader.IMSClient("mysource", "aspenone")
69
+ print(c.search("tag*"))
70
+ df = c.read_tags(["tag1", "tag2"], "18.06.2020 08:00:00", "18.06.2020 09:00:00", 60)
71
+ ```
72
+
73
+ Note, you can add a timeout argument to the search method in order to avoid long-running search queries.
74
+
75
+ ### Jupyter Notebook Quickstart
76
+ Jupyter Notebook examples can be found in /examples. In order to run these examples, you need to install the
77
+ optional dependencies.
78
+
79
+ ```shell
80
+ pip install tagreader[notebooks]
81
+ ```
82
+
83
+ The quickstart Jupyter Notebook can be found [here](https://github.com/equinor/tagreader-python/blob/main/examples/quickstart.ipynb)
84
+
85
+ For more details, see the [Tagreader Docs](https://equinor.github.io/tagreader-python/).
86
+
87
+ ## Documentation
88
+ The full documentation can be found in [Tagreader Docs](https://equinor.github.io/tagreader-python/)
@@ -1,10 +1,6 @@
1
- ⚠️ **Important:** **We are phasing out TagReader, and the code will no longer be maintained.**
2
-
3
- For employees in Equinor we recommend using Omnia Timeseries
4
-
5
1
  # tagreader-python <!-- omit in toc -->
6
2
 
7
- ![GitHub Build Status](https://github.com/equinor/tagreader-python/workflows/Test/badge.svg)
3
+ [![GitHub Build Status](https://github.com/equinor/tagreader-python/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/equinor/tagreader-python/actions/workflows/build.yml)
8
4
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tagreader)
9
5
  ![PyPI](https://img.shields.io/pypi/v/tagreader)
10
6
  [![Downloads](https://pepy.tech/badge/tagreader)](https://pepy.tech/project/tagreader)
@@ -0,0 +1,69 @@
1
+ [project]
2
+ name = "tagreader"
3
+ version = "6.3.1"
4
+ description = "Tagreader is a Python package for reading trend data from the OSIsoft PI and Aspen Infoplus.21 IMS systems."
5
+ requires-python = ">=3.9.6,<4.0.0"
6
+ readme = "README.md"
7
+ license = "MIT"
8
+ keywords = [
9
+ "Aspen InfoPlus.21",
10
+ "OSIsoft PI",
11
+ ]
12
+ classifiers = [
13
+ "Development Status :: 5 - Production/Stable",
14
+ "Intended Audience :: Developers",
15
+ "Intended Audience :: Science/Research",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Natural Language :: English",
18
+ "Operating System :: MacOS",
19
+ "Operating System :: Microsoft :: Windows",
20
+ "Operating System :: POSIX :: Linux",
21
+ "Programming Language :: Python :: 3.9",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator",
26
+ "Topic :: Software Development :: Libraries :: Python Modules",
27
+ "Topic :: Utilities",
28
+ ]
29
+ dependencies = [
30
+ "pandas>=1.4.0,<4",
31
+ "certifi>=2026.10.23,<2027.0.0",
32
+ "requests>=2.32.5",
33
+ "requests-kerberos>=0",
34
+ "msal-bearer>=1.6.0",
35
+ "diskcache>=5.6.1",
36
+ "pycryptodome>=4.1.0",
37
+ "requests-ntlm>=1.1,<=2.0",
38
+ "platformdirs>=4.4.0",
39
+ "urllib3>=2.5.0",
40
+ ]
41
+
42
+ [[project.authors]]
43
+ name = "Einar S. Idsø"
44
+ email = "eiids@equinor.com"
45
+
46
+ [[project.authors]]
47
+ name = "Morten Dæhli Aslesen"
48
+ email = "masl@equinor.com"
49
+
50
+ [[project.maintainers]]
51
+ name = "Åsmund Våge Fannemel"
52
+ email = "asmf@equinor.com"
53
+
54
+ [project.urls]
55
+ homepage = "https://github.com/equinor/tagreader-python"
56
+ repository = "https://github.com/equinor/tagreader-python"
57
+
58
+ [dependency-groups]
59
+ dev = [
60
+ "pre-commit>=3.0",
61
+ "pytest>=7,<9",
62
+ ]
63
+
64
+ [tool.uv]
65
+ default-groups = "all"
66
+
67
+ [build-system]
68
+ requires = ["uv_build>=0.13.5,<0.14.0"]
69
+ build-backend = "uv_build"
@@ -1,16 +1,22 @@
1
1
  [project]
2
2
  name = "tagreader"
3
- version = "6.3.0"
3
+ version = "6.3.1"
4
4
  description = "Tagreader is a Python package for reading trend data from the OSIsoft PI and Aspen Infoplus.21 IMS systems."
5
5
  authors = [
6
6
  { name = "Einar S. Idsø", email = "eiids@equinor.com" },
7
- { name = "Morten Dæhli Aslesen", email = "masl@equinor.com" }
7
+ { name = "Morten Dæhli Aslesen", email = "masl@equinor.com" },
8
8
  ]
9
- license = "MIT"
9
+ maintainers = [
10
+ { name = "Åsmund Våge Fannemel", email = "asmf@equinor.com" },
11
+ ]
12
+ requires-python = ">=3.9.6,<4.0.0"
10
13
  readme = "README.md"
11
- keywords=["Aspen InfoPlus.21", "OSIsoft PI"]
12
- requires-python = ">=3.9.2,<4.0.0"
13
- classifiers=[
14
+ license = "MIT"
15
+ keywords = [
16
+ "Aspen InfoPlus.21",
17
+ "OSIsoft PI",
18
+ ]
19
+ classifiers = [
14
20
  "Development Status :: 5 - Production/Stable",
15
21
  "Intended Audience :: Developers",
16
22
  "Intended Audience :: Science/Research",
@@ -28,30 +34,28 @@ classifiers=[
28
34
  "Topic :: Utilities",
29
35
  ]
30
36
  dependencies = [
31
- "pandas>=1",
32
- "certifi>=2024.12.14,<2026.0.0",
37
+ "pandas>=1.4.0,<4",
38
+ "certifi>=2026.10.23,<2027.0.0",
33
39
  "requests>=2.32.5",
34
40
  "requests-kerberos>=0",
35
- "msal-bearer>=1.5.2",
41
+ "msal-bearer>=1.6.0",
36
42
  "diskcache>=5.6.1",
37
- "pycryptodome>=3.20.0",
43
+ "pycryptodome>=4.1.0",
38
44
  "requests-ntlm>=1.1,<=2.0",
39
- "platformdirs>=4.3.7",
40
- "urllib3>=2.5.0" # To avoid security issue https://www.cve.org/CVERecord?id=CVE-2025-50182
45
+ "platformdirs>=4.4.0",
46
+ "urllib3>=2.5.0",
41
47
  ]
42
48
 
43
- [tool.poetry.group.test.dependencies]
44
- pytest = ">=7,<9"
45
- # pytest-cov = ">=6.0.0"
46
-
47
- [tool.poetry.group.dev.dependencies]
48
- # "black>=24.1.1",
49
- pre-commit = ">=3.0"
50
-
51
49
  [project.urls]
52
50
  homepage = "https://github.com/equinor/tagreader-python"
53
51
  repository = "https://github.com/equinor/tagreader-python"
54
52
 
53
+ [dependency-groups]
54
+ dev = ["pre-commit>=3.0", "pytest>=7,<9"]
55
+
56
+ [tool.uv]
57
+ default-groups = "all"
58
+
55
59
  [build-system]
56
- requires = ["poetry-core>=2.0.0,<3.0.0"]
57
- build-backend = "poetry.core.masonry.api"
60
+ requires = ["uv_build>=0.13.5,<0.14.0"]
61
+ build-backend = "uv_build"
@@ -3,5 +3,5 @@ from importlib.metadata import PackageNotFoundError, distribution
3
3
  try:
4
4
  version = distribution("tagreader").version
5
5
  except PackageNotFoundError:
6
- # This will happen if you run tagreader without installing it as a package. E.g. poetry install --no-root.
6
+ # This will happen if you run tagreader without installing it as a package. E.g. uv sync --no-install-project.
7
7
  version = "0.0.0"
@@ -722,13 +722,13 @@ class AspenHandlerWeb(BaseHandlerWeb):
722
722
  if get_status:
723
723
  # The "l" field maps 1:1 to ODBC status field values 0, 1, 2, 4, 5, 6
724
724
  df = (
725
- pd.DataFrame.from_dict(data["data"][0]["samples"])
725
+ pd.DataFrame(data["data"][0]["samples"])
726
726
  .drop(labels=["s", "V"], axis="columns")
727
727
  .rename(columns={"t": "Timestamp", "v": "Value", "l": "Status"})
728
728
  )
729
729
  else:
730
730
  df = (
731
- pd.DataFrame.from_dict(data["data"][0]["samples"])
731
+ pd.DataFrame(data["data"][0]["samples"])
732
732
  .drop(labels=["l", "s", "V"], axis="columns")
733
733
  .rename(columns={"t": "Timestamp", "v": "Value"})
734
734
  )
@@ -1105,7 +1105,7 @@ class PIHandlerWeb(BaseHandlerWeb):
1105
1105
  data = self.fetch(url, params=params)
1106
1106
 
1107
1107
  if read_type == ReaderType.SNAPSHOT:
1108
- df = pd.DataFrame.from_dict([data]) # noqa
1108
+ df = pd.DataFrame([data])
1109
1109
  else:
1110
1110
  # Summary (aggregated) data and DigitalSets return Value as dict
1111
1111
  df = pd.json_normalize(data=data, record_path="Items")
tagreader-6.3.0/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2020 Equinor
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.