terndata.ecoplots 0.0.3b0__tar.gz → 0.0.4b0__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.
Files changed (57) hide show
  1. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/LICENSE +1 -1
  2. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/PKG-INFO +25 -15
  3. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/README.md +23 -13
  4. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/conf.py +13 -3
  5. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/index.rst +5 -4
  6. terndata_ecoplots-0.0.4b0/docs/requirements.txt +13 -0
  7. terndata_ecoplots-0.0.4b0/examples/demo.ipynb +3184 -0
  8. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/requirements.txt +1 -1
  9. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/__init__.py +2 -1
  10. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_base.py +112 -53
  11. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_config.py +2 -1
  12. terndata_ecoplots-0.0.4b0/src/terndata/ecoplots/_exceptions.py +52 -0
  13. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_gui/spatial_selector.py +98 -16
  14. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_nlp_utils.py +40 -32
  15. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_utils.py +5 -3
  16. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/ecoplots.py +67 -20
  17. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/version.py +3 -3
  18. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata.ecoplots.egg-info/PKG-INFO +25 -15
  19. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata.ecoplots.egg-info/SOURCES.txt +2 -1
  20. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata.ecoplots.egg-info/requires.txt +1 -1
  21. terndata_ecoplots-0.0.3b0/demo.ipynb +0 -4759
  22. terndata_ecoplots-0.0.3b0/docs/requirements.txt +0 -4
  23. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/.github/workflows/publish.yml +0 -0
  24. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/.github/workflows/test.yml +0 -0
  25. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/.gitignore +0 -0
  26. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/.readthedocs.yaml +0 -0
  27. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/Makefile +0 -0
  28. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/NOTICE +0 -0
  29. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/Makefile +0 -0
  30. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/brand.css +0 -0
  31. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/img/TERN-logo-primary.png +0 -0
  32. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/img/TERN-logo-reversed.png +0 -0
  33. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/img/ecoplots-logo-base.svg +0 -0
  34. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/img/ecoplots-logo-dark.svg +0 -0
  35. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/img/ecoplots-logo-light.svg +0 -0
  36. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/_static/img/github-mark.svg +0 -0
  37. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/api/async_ecoplots_class.rst +0 -0
  38. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/api/ecoplots_class.rst +0 -0
  39. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/api/modules.rst +0 -0
  40. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/api/overview.rst +0 -0
  41. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/api.rst +0 -0
  42. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/docs/internals.rst +0 -0
  43. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/pyproject.toml +0 -0
  44. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/requirements-flake8.txt +0 -0
  45. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/requirements-mypy.txt +0 -0
  46. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/requirements-test.txt +0 -0
  47. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/requirements-tox.txt +0 -0
  48. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/setup.cfg +0 -0
  49. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_flatten_response/__init__.py +0 -0
  50. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_flatten_response/_streaming.py +0 -0
  51. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_flatten_response/_workers.py +0 -0
  52. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/_gui/__init__.py +0 -0
  53. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/assets/TERN_logo.png +0 -0
  54. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata/ecoplots/assets/ecoplots_logo.svg +0 -0
  55. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata.ecoplots.egg-info/dependency_links.txt +0 -0
  56. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/src/terndata.ecoplots.egg-info/top_level.txt +0 -0
  57. {terndata_ecoplots-0.0.3b0 → terndata_ecoplots-0.0.4b0}/tox.ini +0 -0
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright [yyyy] [name of copyright owner]
190
+ Copyright 2025 TERN Data Services and Analytics (TDSA)
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terndata.ecoplots
3
- Version: 0.0.3b0
3
+ Version: 0.0.4b0
4
4
  Summary: TERN ecoplots data access library
5
5
  Author-email: Avinash Chandra <avinash.chandra@uq.edu.au>
6
6
  Maintainer-email: "TERN Data Services and Analytics (TDSA)" <esupport@tern.org.au>
@@ -26,9 +26,9 @@ Requires-Dist: numpy
26
26
  Requires-Dist: pandas
27
27
  Requires-Dist: geopandas
28
28
  Requires-Dist: requests
29
+ Requires-Dist: aiohttp<4.0.0,>=3.11.12
29
30
  Requires-Dist: python-dateutil
30
31
  Requires-Dist: pytz
31
- Requires-Dist: httpx<1.0.0,>=0.28.1
32
32
  Requires-Dist: rapidfuzz<4.0.0,>=3.13.0
33
33
  Requires-Dist: orjson<4.0.0,>=3.10.15
34
34
  Requires-Dist: diskcache<6.0.0,>=5.6.3
@@ -77,25 +77,35 @@ Supported Python: 3.10+
77
77
 
78
78
  ## Quick start
79
79
 
80
- from terndata.ecoplots import EcoPlots
80
+ ```python
81
+ from terndata.ecoplots import EcoPlots
81
82
 
82
- ec = EcoPlots()
83
- ec.select(site_id="TCFTNS0002") # add validated filters
84
- preview = ec.preview().head() # quick look (first page)
85
- gdf = ec.get_data() # full pull (GeoDataFrame)
83
+ ec = EcoPlots()
84
+ ec.select(site_id="TCFTNS0002") # add validated filters
85
+ preview = ec.preview().head() # quick look (first page)
86
+ gdf = ec.get_data() # full pull (GeoDataFrame)
87
+ ```
86
88
 
87
89
  ### Async
88
90
 
89
- import asyncio
90
- from terndata.ecoplots import AsyncEcoPlots
91
+ ```python
92
+ import asyncio
93
+ from terndata.ecoplots import AsyncEcoPlots
91
94
 
92
- async def main():
93
- ec = AsyncEcoPlots()
94
- ec.select(site_id="TCFTNS0002")
95
- gdf = await ec.get_data()
96
- return gdf
95
+ async def main():
96
+ ec = AsyncEcoPlots()
97
+ ec.select(site_id="TCFTNS0002")
98
+ gdf = await ec.get_data()
99
+ return gdf
97
100
 
98
- # asyncio.run(main())
101
+ # asyncio.run(main())
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Demo
107
+
108
+ For example usage, please refer to the [demo notebook](examples/demo.ipynb).
99
109
 
100
110
  ---
101
111
 
@@ -36,25 +36,35 @@ Supported Python: 3.10+
36
36
 
37
37
  ## Quick start
38
38
 
39
- from terndata.ecoplots import EcoPlots
39
+ ```python
40
+ from terndata.ecoplots import EcoPlots
40
41
 
41
- ec = EcoPlots()
42
- ec.select(site_id="TCFTNS0002") # add validated filters
43
- preview = ec.preview().head() # quick look (first page)
44
- gdf = ec.get_data() # full pull (GeoDataFrame)
42
+ ec = EcoPlots()
43
+ ec.select(site_id="TCFTNS0002") # add validated filters
44
+ preview = ec.preview().head() # quick look (first page)
45
+ gdf = ec.get_data() # full pull (GeoDataFrame)
46
+ ```
45
47
 
46
48
  ### Async
47
49
 
48
- import asyncio
49
- from terndata.ecoplots import AsyncEcoPlots
50
+ ```python
51
+ import asyncio
52
+ from terndata.ecoplots import AsyncEcoPlots
50
53
 
51
- async def main():
52
- ec = AsyncEcoPlots()
53
- ec.select(site_id="TCFTNS0002")
54
- gdf = await ec.get_data()
55
- return gdf
54
+ async def main():
55
+ ec = AsyncEcoPlots()
56
+ ec.select(site_id="TCFTNS0002")
57
+ gdf = await ec.get_data()
58
+ return gdf
56
59
 
57
- # asyncio.run(main())
60
+ # asyncio.run(main())
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Demo
66
+
67
+ For example usage, please refer to the [demo notebook](examples/demo.ipynb).
58
68
 
59
69
  ---
60
70
 
@@ -8,6 +8,18 @@ SRC = ROOT / "src"
8
8
  if str(SRC) not in sys.path:
9
9
  sys.path.insert(0, str(SRC))
10
10
 
11
+ # Debug: Print Python path for troubleshooting
12
+ print(f"[DEBUG] Python path: {sys.path[:3]}")
13
+ print(f"[DEBUG] ROOT: {ROOT}")
14
+ print(f"[DEBUG] SRC: {SRC}")
15
+
16
+ # Test import to catch errors early
17
+ try:
18
+ import terndata.ecoplots
19
+ print(f"[DEBUG] Successfully imported terndata.ecoplots from {terndata.ecoplots.__file__}")
20
+ except ImportError as e:
21
+ print(f"[ERROR] Failed to import terndata.ecoplots: {e}")
22
+
11
23
  project = "terndata.ecoplots"
12
24
  author = "Avinash Chandra"
13
25
 
@@ -15,7 +27,7 @@ START_YEAR = 2025
15
27
  YEAR = datetime.now(timezone.utc).year
16
28
  years = f"{START_YEAR}-{YEAR}" if YEAR > START_YEAR else f"{YEAR}"
17
29
  copyright = f"{years}, TDSA (TERN Data Services and Analytics)" # noqa: A001
18
- release = "0.1.0"
30
+ release = "0.0.4-beta"
19
31
 
20
32
  extensions = [
21
33
  "sphinx.ext.autodoc",
@@ -89,8 +101,6 @@ autodoc_mock_imports = [
89
101
  "fiona",
90
102
  "pyproj",
91
103
  "rtree",
92
- "numpy",
93
- "pandas",
94
104
  ]
95
105
 
96
106
  exclude_patterns = ["api/modules.rst"]
@@ -32,16 +32,16 @@
32
32
  </div>
33
33
  </div>
34
34
 
35
- What is EcoPlots?
36
- ==================
35
+ About EcoPlots
36
+ ==============
37
37
  TERN EcoPlots is a platform designed for searching, discovering, and accessing ecological observations—both from systematic site-based surveys and opportunistic surveys—as well as specimen samples collected during field surveys from various data sources. With TERN EcoPlots, users can search for observation data and specimen samples from systematic surveys across Australia. The platform allows users to integrate data from multiple sources and access it as a comprehensive, ready-to-use data package. Additionally, users can search for specimen samples and request access to these samples for further research.
38
38
 
39
39
  TERN EcoPlots is developed based on a semantic data integration approach. Datasets are generally received from custodians in various forms, including PostgreSQL databases and CSV file formats. In the data ingestion process, each source dataset is mapped to a `TERN Plot ontology <https://linkeddata.tern.org.au/information-models/tern-ontology>`_ including the identification and mapping of domain feature types, parameters, and categorical values to controlled vocabularies, as well as the performance of data validation routines and the resolution of taxonomic names. All data are organised in Resource Description Framework (RDF) and stored in a triple store.
40
40
 
41
41
  See also: `EcoPlots Portal <https://ecoplots.tern.org.au>`_.
42
42
 
43
- What is the EcoPlots Python library?
44
- ====================================
43
+ EcoPlots Python library
44
+ =======================
45
45
  The EcoPlots Python library provides a small, Pythonic client for the EcoPlots REST API, so you can programmatically discover datasets, apply validated filters, preview results, and retrieve analysis-ready data.
46
46
 
47
47
  Key capabilities:
@@ -63,6 +63,7 @@ Installation
63
63
 
64
64
  Next steps
65
65
  ==========
66
+ - `Demo Notebook <https://github.com/ternaustralia/terndata.ecoplots/blob/main/examples/demo.ipynb>`_ - Interactive examples and usage patterns
66
67
  - :doc:`Package overview <api/overview>`
67
68
  - :doc:`EcoPlots Client <api/ecoplots_class>`
68
69
  - :doc:`Async EcoPlots client <api/async_ecoplots_class>`
@@ -0,0 +1,13 @@
1
+ sphinx>=7.0
2
+ myst-parser
3
+ furo
4
+ sphinx-autobuild
5
+
6
+ # Core dependencies needed for autodoc to import the package
7
+ aiohttp
8
+ orjson
9
+ requests
10
+ diskcache
11
+ pandas
12
+ numpy
13
+ rapidfuzz