greynoise 3.0.0__tar.gz → 3.0.2__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 (72) hide show
  1. {greynoise-3.0.0 → greynoise-3.0.2}/.bumpversion.cfg +2 -2
  2. {greynoise-3.0.0 → greynoise-3.0.2}/.circleci/config.yml +0 -5
  3. {greynoise-3.0.0 → greynoise-3.0.2}/.readthedocs.yml +6 -1
  4. {greynoise-3.0.0 → greynoise-3.0.2}/CHANGELOG.rst +17 -1
  5. {greynoise-3.0.0 → greynoise-3.0.2}/PKG-INFO +1 -1
  6. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/conf.py +1 -1
  7. {greynoise-3.0.0 → greynoise-3.0.2}/pyproject.toml +1 -1
  8. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/__version__.py +1 -1
  9. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/api/__init__.py +12 -9
  10. {greynoise-3.0.0 → greynoise-3.0.2}/.dockerignore +0 -0
  11. {greynoise-3.0.0 → greynoise-3.0.2}/.editorconfig +0 -0
  12. {greynoise-3.0.0 → greynoise-3.0.2}/.github/CODEOWNERS +0 -0
  13. {greynoise-3.0.0 → greynoise-3.0.2}/.github/dependabot.yml +0 -0
  14. {greynoise-3.0.0 → greynoise-3.0.2}/.github/workflows/slack_release_notice.yml +0 -0
  15. {greynoise-3.0.0 → greynoise-3.0.2}/.gitignore +0 -0
  16. {greynoise-3.0.0 → greynoise-3.0.2}/.pre-commit-config.yaml +0 -0
  17. {greynoise-3.0.0 → greynoise-3.0.2}/.yamllint +0 -0
  18. {greynoise-3.0.0 → greynoise-3.0.2}/Dockerfile +0 -0
  19. {greynoise-3.0.0 → greynoise-3.0.2}/LICENSE +0 -0
  20. {greynoise-3.0.0 → greynoise-3.0.2}/MANIFEST.in +0 -0
  21. {greynoise-3.0.0 → greynoise-3.0.2}/Makefile +0 -0
  22. {greynoise-3.0.0 → greynoise-3.0.2}/README.rst +0 -0
  23. {greynoise-3.0.0 → greynoise-3.0.2}/docs/Makefile +0 -0
  24. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/changelog.rst +0 -0
  25. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/index.rst +0 -0
  26. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/introduction.rst +0 -0
  27. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/reference.rst +0 -0
  28. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/sample.py +0 -0
  29. {greynoise-3.0.0 → greynoise-3.0.2}/docs/source/tutorial.rst +0 -0
  30. {greynoise-3.0.0 → greynoise-3.0.2}/pytest.ini +0 -0
  31. {greynoise-3.0.0 → greynoise-3.0.2}/release.md +0 -0
  32. {greynoise-3.0.0 → greynoise-3.0.2}/requirements/common.txt +0 -0
  33. {greynoise-3.0.0 → greynoise-3.0.2}/requirements/dev.txt +0 -0
  34. {greynoise-3.0.0 → greynoise-3.0.2}/requirements/docs.txt +0 -0
  35. {greynoise-3.0.0 → greynoise-3.0.2}/requirements/test.txt +0 -0
  36. {greynoise-3.0.0 → greynoise-3.0.2}/reset_changelog.py +0 -0
  37. {greynoise-3.0.0 → greynoise-3.0.2}/setup.cfg +0 -0
  38. {greynoise-3.0.0 → greynoise-3.0.2}/sonar-project.properties +0 -0
  39. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/__init__.py +0 -0
  40. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/api/filter.py +0 -0
  41. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/__init__.py +0 -0
  42. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/decorator.py +0 -0
  43. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/formatter.py +0 -0
  44. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/helper.py +0 -0
  45. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/parameter.py +0 -0
  46. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/subcommand.py +0 -0
  47. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/analyze.txt.j2 +0 -0
  48. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/cvedetails.txt.j2 +0 -0
  49. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/gnql_query.txt.j2 +0 -0
  50. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/gnql_stats.txt.j2 +0 -0
  51. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/ip_community.txt.j2 +0 -0
  52. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/ip_context.txt.j2 +0 -0
  53. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/ip_context_result.txt.j2 +0 -0
  54. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/ip_multi_context.txt.j2 +0 -0
  55. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/ip_quick_check.txt.j2 +0 -0
  56. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/macros.txt.j2 +0 -0
  57. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/personadetails.txt.j2 +0 -0
  58. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/riot.txt.j2 +0 -0
  59. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/sensoractivity.txt.j2 +0 -0
  60. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/sensorlist.txt.j2 +0 -0
  61. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/similarity.txt.j2 +0 -0
  62. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/stats.txt.j2 +0 -0
  63. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/timeline.txt.j2 +0 -0
  64. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/cli/templates/timelinehourly.txt.j2 +0 -0
  65. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/exceptions.py +0 -0
  66. {greynoise-3.0.0 → greynoise-3.0.2}/src/greynoise/util.py +0 -0
  67. {greynoise-3.0.0 → greynoise-3.0.2}/tests/cli/test_formatter.py +0 -0
  68. {greynoise-3.0.0 → greynoise-3.0.2}/tests/cli/test_init.py +0 -0
  69. {greynoise-3.0.0 → greynoise-3.0.2}/tests/cli/test_subcommand.py +0 -0
  70. {greynoise-3.0.0 → greynoise-3.0.2}/tests/test_api.py +0 -0
  71. {greynoise-3.0.0 → greynoise-3.0.2}/tests/test_util.py +0 -0
  72. {greynoise-3.0.0 → greynoise-3.0.2}/tox.ini +0 -0
@@ -1,9 +1,9 @@
1
1
  [bumpversion]
2
- current_version = 3.0.0
2
+ current_version = 3.0.2
3
3
  tag = False
4
4
  commit = False
5
5
 
6
- [bumpversion:file:setup.py]
6
+ [bumpversion:file:pyproject.toml]
7
7
  search = version="{current_version}"
8
8
  replace = version="{new_version}"
9
9
 
@@ -24,11 +24,6 @@ workflows:
24
24
  - py312:
25
25
  filters:
26
26
  <<: *TAGS_FILTER
27
- - sonarcloud:
28
- requires:
29
- # generate static analysis and coverage reports in py37 job
30
- # and upload them to sonarcloud.io in sonarcloud job
31
- - py39
32
27
  - pypi:
33
28
  requires:
34
29
  # release to pypi only when test cases pass in all python versions
@@ -1,11 +1,16 @@
1
1
  ---
2
2
  version: 2
3
+
4
+ build:
5
+ os: ubuntu-22.04
6
+ tools:
7
+ python: "3.12"
8
+
3
9
  sphinx:
4
10
  builder: html
5
11
  configuration: docs/source/conf.py
6
12
 
7
13
  python:
8
- version: 3.7
9
14
  install:
10
15
  - requirements: requirements/docs.txt
11
16
  - method: pip
@@ -2,6 +2,20 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version `3.0.2`_
6
+ ================
7
+ **Date**: March 10, 2026
8
+
9
+ * API client:
10
+ * Update `proxy` parameter to be used for all API requests
11
+
12
+ Version `3.0.1`_
13
+ ================
14
+ **Date**: June 18, 2025
15
+
16
+ * API client:
17
+ * Updated `query` command to use GNQL Metadata endpoint when `exclude_raw` is True
18
+
5
19
  Version `3.0.0`_
6
20
  ================
7
21
  **Date**: June 02, 2025
@@ -467,4 +481,6 @@ Version `0.2.0`_
467
481
  .. _`2.1.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.0.1...2.1.0
468
482
  .. _`2.2.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.1.0...2.2.0
469
483
  .. _`2.3.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.2.0...2.3.0
470
- .. _`3.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.3.0...HEAD
484
+ .. _`3.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.3.0...v3.0.0
485
+ .. _`3.0.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.0...v3.0.1
486
+ .. _`3.0.2`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.1...HEAD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: greynoise
3
- Version: 3.0.0
3
+ Version: 3.0.2
4
4
  Summary: Abstraction to interact with GreyNoise API.
5
5
  Project-URL: Homepage, https://greynoise.io/
6
6
  Project-URL: Repository, https://github.com/GreyNoise-Intelligence/pygreynoise
@@ -25,7 +25,7 @@ copyright = "2018-2025, GreyNoise Intelligence"
25
25
  author = "GreyNoise Intelligence"
26
26
 
27
27
  # The full version, including alpha/beta/rc tags
28
- release = "3.0.0"
28
+ release = "3.0.2"
29
29
 
30
30
 
31
31
  # -- General configuration ---------------------------------------------------
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "greynoise"
7
- version = "3.0.0"
7
+ version = "3.0.2"
8
8
  description = "Abstraction to interact with GreyNoise API."
9
9
  readme = {file = "README.rst", content-type = "text/x-rst"}
10
10
  requires-python = ">=3.8"
@@ -5,4 +5,4 @@ __license__ = "MIT"
5
5
  __maintainer__ = "GreyNoise Intelligence"
6
6
  __email__ = "support@greynoise.io"
7
7
  __status__ = "BETA"
8
- __version__ = "3.0.0"
8
+ __version__ = "3.0.2"
@@ -98,6 +98,9 @@ class BaseAPIClient:
98
98
  if params is None:
99
99
  params = {}
100
100
 
101
+ # Use config proxy when no proxy is explicitly passed
102
+ proxy = proxy or self.config.proxy
103
+
101
104
  user_agent_parts = ["GreyNoise/{}".format(__version__)]
102
105
  if self.config.integration_name:
103
106
  user_agent_parts.append("({})".format(self.config.integration_name))
@@ -153,7 +156,7 @@ class BaseAPIClient:
153
156
  else:
154
157
  body = response.text
155
158
 
156
- LOGGER.debug("API response received %s %s", response.status_code, body)
159
+ LOGGER.debug("API response received %s", response.status_code)
157
160
 
158
161
  if response.status_code == 429:
159
162
  raise RateLimitError()
@@ -201,7 +204,6 @@ class BaseAPIClient:
201
204
  for future in as_completed(future_to_chunk):
202
205
  try:
203
206
  chunk_results = future.result()
204
- LOGGER.debug(f"Chunked Results: {chunk_results}")
205
207
 
206
208
  if first_result_type is None:
207
209
  first_result_type = type(chunk_results)
@@ -218,7 +220,6 @@ class BaseAPIClient:
218
220
  dict_results[key].extend(value)
219
221
  else:
220
222
  dict_results[key].append(value)
221
- LOGGER.debug(f"dict results: {dict_results}")
222
223
 
223
224
  except Exception as e:
224
225
  LOGGER.error("Error processing batch: %s", str(e))
@@ -247,6 +248,7 @@ class GreyNoise(BaseAPIClient):
247
248
 
248
249
  NAME = "GreyNoise"
249
250
  EP_GNQL = "v3/gnql"
251
+ EP_GNQL_METADATA = "v3/gnql/metadata"
250
252
  EP_GNQL_STATS = "v2/experimental/gnql/stats"
251
253
  EP_IP = "v3/ip/{ip_address}"
252
254
  EP_NOISE_MULTI = "v3/ip?quick=true"
@@ -447,12 +449,13 @@ class GreyNoise(BaseAPIClient):
447
449
  params["size"] = size
448
450
  if scroll is not None:
449
451
  params["scroll"] = scroll
450
- response = self._request(self.EP_GNQL, params=params)
451
-
452
- if exclude_raw:
453
- if "data" in response:
454
- for ip_data in response["data"]:
455
- ip_data["internet_scanner_intelligence"].pop("raw_data")
452
+ if exclude_raw:
453
+ LOGGER.debug("Using GNQL Metadata endpoint")
454
+ endpoint = self.EP_GNQL_METADATA
455
+ else:
456
+ LOGGER.debug("Using GNQL Full endpoint")
457
+ endpoint = self.EP_GNQL
458
+ response = self._request(endpoint, params=params)
456
459
 
457
460
  return response
458
461
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes